From 561617271c51412d14e600ea445f8f83c4cfd8a5 Mon Sep 17 00:00:00 2001 From: Florent Jardin Date: Tue, 17 Jun 2025 10:04:41 +0200 Subject: [PATCH 1/2] 2025-06-17 le partitionnement par uuidv7 --- ...025-06-17-le-partitionnement-par-uuidv7.md | 389 ++++++++++++++++++ .../2025-06-17-partitionnement-uuidv7-01.png | Bin 0 -> 26490 bytes .../2025-06-17-partitionnement-uuidv7-02.png | Bin 0 -> 26554 bytes .../2025-06-17-partitionnement-uuidv7-03.png | Bin 0 -> 36442 bytes .../2025-06-17-partitionnement-uuidv7-04.png | Bin 0 -> 34545 bytes .../2025-06-17-partitionnement-uuidv7-05.png | Bin 0 -> 22423 bytes 6 files changed, 389 insertions(+) create mode 100644 content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md create mode 100644 static/img/fr/2025-06-17-partitionnement-uuidv7-01.png create mode 100644 static/img/fr/2025-06-17-partitionnement-uuidv7-02.png create mode 100644 static/img/fr/2025-06-17-partitionnement-uuidv7-03.png create mode 100644 static/img/fr/2025-06-17-partitionnement-uuidv7-04.png create mode 100644 static/img/fr/2025-06-17-partitionnement-uuidv7-05.png diff --git a/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md b/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md new file mode 100644 index 00000000..4764cb3f --- /dev/null +++ b/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md @@ -0,0 +1,389 @@ +--- +title: "Le partitionnement par UUID v7" +categories: [postgresql] +tags: [developpement] +date: "2025-06-17 09:00:00 +0200" +--- + +Au dernier PG Day 2025, j’ai pris la parole pour présenter une méthode de +conception que je juge mature et astucieuse : le partitionnement temporel +avec le type UUID et sa version 7. + +Le support de présentation est disponible à cette [adresse][1] et je reprendrais +dans cet article, les exemples en guise de démonstration. Je vous propose de +passer en détail ce que j’ai pu y dire, et ne pas y dire faute de temps. +Également, je vous invite à lire ou redécouvrir mes recherches sur le +[partitionnement par hachage][2]. + +[1]: /documents/pgdayfr-2025-lightning-talk-partitionnement-uuidv7.pdf +[2]: /2021/04/23/le-partitionnement-par-hachage/ + + + +--- + +## Explorer les limites + +En première lecture de la documentation, nous pouvons prendre conscience que le +choix de la clé de partitionnement est crucial pour parvenir au meilleur +compromis stockage/performance. Parmi les contraintes qui s’imposent à nous, +l’une d’entre elles est particulièrement fondamentale : + +> Pour créer une contrainte d'unicité ou une clé primaire sur une table +> partitionnée, la clé de partitionnement ne doit pas inclure des expressions ou +> des appels de fonction, et les colonnes de la contrainte doivent inclure toutes +> les colonnes de la clé de partitionnement. Cette limitation existe parce que les +> index individuels créant la contrainte peuvent seulement forcer l'unicité sur +> leur propre partition ; de ce fait, la structure même de la partition doit +> garantir qu'il n'existe pas de duplicats dans les différentes partitions. +> +> Documentation : [https://www.postgresql.org/docs/current/ddl-partitioning.html][3] + +[3]: https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE-LIMITATIONS + +En résumé, si nous souhaitons une contrainte de clé primaire sur notre table +partitionnée, il nous faut y inclure la colonne présente dans la clé de +partitionnement. + +Voyons par l’exemple l’application de cette règle. Un des nombreux cas concernés +par cette limitation est le partitionnement par date, à des fins de purges ou +d’archivage. Une contrainte de clé primaire est requise pour identifier chaque +ligne et un champ `timestamp` est utilisé pour catégoriser les lignes selon leur +date de création. + +![](/img/fr/2025-06-17-partitionnement-uuidv7-01.png) + +```sql +CREATE TABLE foo ( + id bigint NOT NULL, + name varchar, + created_at timestamp NOT NULL +) PARTITION BY RANGE (created_at); +-- CREATE TABLE + +ALTER TABLE foo ADD PRIMARY KEY (id); +-- ERROR: unique constraint on partitioned table must include all +-- partitioning columns +-- DETAIL: PRIMARY KEY constraint on table "foo" lacks column "created_at" +-- which is part of the partition key. +``` + +Pour respecter l’unicité entre toutes les partitions, PostgreSQL se simplifie la +tâche en renforçant la contrainte au moment de la distribution des lignes dans +les partitions. Ainsi, chaque partition dispose d’un index unique pour le +respect de la contrainte d’identité, sans se soucier d’un risque de collision +entre deux lignes de partitions différentes. + +Reprenons notre exemple pour y entrevoir les dérives qu’apporte ce choix de +modélisation. Ici, nous respecterons à la lettre ce que PostgreSQL nous impose, +à savoir : inclure la colonne `created_at` dans la contrainte de clé primaire. + +![](/img/fr/2025-06-17-partitionnement-uuidv7-02.png) + +```sql +ALTER TABLE foo ADD PRIMARY KEY (id, created_at); +-- ALTER TABLE + +CREATE TABLE foo_p202506 PARTITION OF foo + FOR VALUES FROM ('2025-06-01') TO ('2025-07-01'); +-- CREATE TABLE + +CREATE TABLE foo_default PARTITION OF foo DEFAULT; +-- CREATE TABLE +``` + +Avec ce choix, il devient possible d’insérer deux valeurs `id` identiques, pour +peu que leurs dates de création soient différentes. L’identité n’est donc plus +un simple numéro, mais un couple `id, timestamp` à questionner systématiquement +lors d’une consultation avec la clause `WHERE`. + +```sql +INSERT INTO foo (id, created_at) + VALUES (1, '2025-06-04'), (1, '2024-01-01'); +-- INSERT 0 2 + +SELECT tableoid::regclass partname, id, created_at FROM foo; +-- partname | id | created_at +-- -------------+----+--------------------- +-- foo_p202506 | 1 | 2025-06-04 00:00:00 +-- foo_default | 1 | 2024-01-01 00:00:00 +``` + +Les choses empirent lorsqu’une relation de clé étrangère s’immisce dans le +casse-tête de la modélisation. En effet, le maintien de l’identité composite +d’une ligne se révèle acrobatique, lors de la rédaction des requêtes SQL +d’insertion et de jointure. + +```sql +CREATE TABLE bar ( + id bigint PRIMARY KEY, + data text, + created_at timestamp NOT NULL, + foo_id bigint, + foo_created_id timestamp, + FOREIGN KEY (foo_id, foo_created_id) + REFERENCES foo (id, created_at) +); +-- CREATE TABLE + +WITH foo_insert AS ( + INSERT INTO foo (id, name, created_at) + VALUES (2, 'foo', clock_timestamp()) + RETURNING id, created_at +) INSERT INTO bar (id, data, created_at, foo_id, foo_created_id) + SELECT 1, 'bar', clock_timestamp(), f.id, f.created_at + FROM foo_insert AS f; +-- INSERT 0 1 + +SELECT bar.id, bar.created_at, data, foo.id, foo.name + FROM bar + JOIN foo + ON foo.id = bar.foo_id + AND foo.created_at = bar.foo_created_id; +-- id | created_at | data | id | name +-- ----+----------------------------+------+----+------ +-- 1 | 2025-06-16 20:12:02.101194 | bar | 2 | foo +``` + +L’exercice devient catastrophique lorsque la seconde table requiert d’être +partitionnée à son tour, et où le risque de mauvaise rédaction des requêtes +augmente selon le degré de connaissance du modèle par les équipes de +développement. Nous retiendrons que cette pratique n’a pas cours et se conclut +fréquemment par un retour arrière. + +![](/img/fr/2025-06-17-partitionnement-uuidv7-03.png) + +--- + +## La version 7 du type UUID + +La [RFC 9562][4] voit le jour en mai 2024 et propose d’étendre le type de +données UUID de trois nouvelles versions (6, 7 et 8). Un UUID (ou _Universally +Unique IDentifier_) est une donnée encodée sur 16 octets, garantissant une +unicité à travers le temps (son heure de génération) et l’espace (son serveur de +génération). Les UUID sont redoutables dans un contexte de systèmes distribués +où chaque participant peut créer de la donnée (une ligne) qui n’entre pas en +collision avec aucune autre du système. + +[4]: https://www.rfc-editor.org/rfc/rfc9562 + +La structure d’un UUID se voit doté d’un _timestamp UNIX_ d’une précision à la +milliseconde, encodé dans les 48 premiers bits de sa valeur. Cette version est +un compromis entre la randomicité et la praticité. Les bénéfices vous paraîtront +limpides à l’issue de cet article. + +![](/img/fr/2025-06-17-partitionnement-uuidv7-04.png) + +La version 7 était unanimement attendue, car elle apporte une réponse bien plus +appropriée pour l’indexation dans les bases de données, offrant à la fois une +unicité et une sortabilité pour les champs. De plus, de par cet accroissement +monotone des UUID au fil du temps, la gestion interne d’un index B-Tree se voit +naturellement facilitée avec un équilibrage moins fréquent et une prédictibilité +dans ses performances. + +Une [publication récente][5] annonçait des gains significatifs entre la version +4 et la version 7, sur les insertions, les consultations par index ainsi que sur +l’espace occupé par les tables et les index. De quoi se réconcilier avec le type +UUID ! + +[5]: https://dev.to/umangsinha12/postgresql-uuid-performance-benchmarking-random-v4-and-time-based-v7-uuids-n9b + +| Metric | UUIDv4 | UUIDv7 | Improvement | +|------------------------|-------------:|-------------:|-------------:| +| Insert Time (10M rows) | 5 min 35 sec | 3 min 38 sec | ~35% faster | +| Table Size | 3618 MB | 3443 MB | ~5% smaller | +| Index Size | 776 MB | 602 MB | ~22% smaller | +| Point Lookup Latency | 0.167 ms | 0.038 ms | ~4x faster | +| Range Scan Latency | 8.284 ms | 3.791 ms | ~2x faster | + +La communauté de développement de PostgreSQL a suivi l’actualité de cette RFC, +en proposant un [premier patch][6] en février 2023 alors que le brouillon de +l’_Internet Engineering Task Force_ (IETF) venait d’être publié. C’est lors du +[CommitFest][7] de janvier 2025 que le sujet est clôturé avec l’ajout dans le +commit [78c5e14][9] de deux méthodes pour la version 18, annoncée à l’automne +prochain. + +[6]: https://www.postgresql.org/message-id/CAAhFRxitJv=yoGnXUgeLB_O+M7J2BJAmb5jqAT9gZ3bij3uLDA@mail.gmail.com +[7]: https://commitfest.postgresql.org/patch/4388/ +[9]: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=78c5e141e9c139fc2ff36a220334e4aa25e1b0eb + +```text +author Masahiko Sawada + Wed, 11 Dec 2024 23:54:41 +0000 (15:54 -0800) +committer Masahiko Sawada + Wed, 11 Dec 2024 23:54:41 +0000 (15:54 -0800) +Add UUID version 7 generation function. + +This commit introduces the uuidv7() SQL function, which generates UUID +version 7 as specified in RFC 9652. UUIDv7 combines a Unix timestamp +in milliseconds and random bits, offering both uniqueness and +sortability. +This commit also expands the uuid_extract_timestamp() function to +support UUID version 7. + +Additionally, an alias uuidv4() is added for the existing +gen_random_uuid() SQL function to maintain consistency. +``` + +Vous me voyez venir ? À l’aide de cette nouvelle RFC, il devient possible de +disposer d’une ligne dont sa colonne d’identité contient sa date de sa création ! +Le tout sans surcoût pour le stockage, car chaque ligne consommera 16 octets +pour sa colonne de clé primaire, autant qu’un `bigint` (8 octets) et un +`timestamp` (8 octets) réunis ! + +![](/img/fr/2025-06-partitionnement-uuidv7-05.png) + +--- + +## Partitionner par UUID v7 + +L’idée originale me vient d’un [article][10] de Daniel Vérité, lu l’été dernier, +alors même que la RFC venait de sortir, mais que le patch dans PostgreSQL était +bloqué par la période de gel pour la sortie de la version 17. Il était question +de pouvoir implémenter ses propres méthodes en PL/pgSQL sur les versions en +vigueur, sans attendre la version 18. + +[10]: https://postgresql.verite.pro/blog/2024/07/15/uuid-v7-pure-sql.html#partitioning-by-uuid-v7 + +La création de la table `foo` se réalise ainsi : + +```sql +CREATE TABLE foo ( + id uuid PRIMARY KEY DEFAULT uuidv7(), + name varchar +) PARTITION BY RANGE (id); +-- CREATE TABLE + +CREATE TABLE foo_p202506 PARTITION OF foo + FOR VALUES FROM (uuidv7_boundary('2025-06-01')) + TO (uuidv7_boundary('2025-07-01')); +-- CREATE TABLE + +CREATE TABLE foo_default PARTITION OF foo DEFAULT; +-- CREATE TABLE +``` + +La méthode `uuidv7_boundary` est inédite et n’a pas d’équivalent dans les +versions à venir de PostgreSQL, bien qu’elle mériterait amplement sa place. Sa +définition est disponible sur le dépôt [dverite/postgres-uuidv7-sql][11]. + +[11]: https://github.com/dverite/postgres-uuidv7-sql/blob/main/sql/uuidv7-sql--1.0.sql#L63 + +```sql +CREATE FUNCTION uuidv7_boundary(timestamptz) RETURNS uuid +AS $$ + /* uuid fields: version=0b0111, variant=0b10 */ + select encode( + overlay('\x00000000000070008000000000000000'::bytea + placing substring( + int8send( + floor(extract(epoch from $1) * 1000)::bigint) from 3) + from 1 for 6), + 'hex')::uuid; +$$ LANGUAGE sql stable strict parallel safe; +``` + +Grâce à cette fonction, il est possible d’obtenir les bornes d’une partition en +ne conservant que la donnée temporelle d’un UUID et remplissant le reste par des +zéros (et quelques bits fixes). Pour la table `foo`, on se retrouve dès lors avec +la partition qui respecte les valeurs comprises entre juin et juillet. + +```text + Partitioned table "public.foo" + Column | Type | Collation | Nullable | Default +--------+-------------------+-----------+----------+---------- + id | uuid | | not null | uuidv7() + name | character varying | | | + +Partition key: RANGE (id) +Indexes: + "foo_pkey" PRIMARY KEY, btree (id) +Partitions: foo_p202506 FOR VALUES + FROM ('0197285b-e300-7000-8000-000000000000') + TO ('0197c2da-ab00-7000-8000-000000000000'), + foo_default DEFAULT +``` + +```sql +INSERT INTO foo (name) VALUES ('foo'); +-- INSERT 0 1 + +SELECT tableoid::regclass partname, *, + uuid_extract_timestamp(id) created_at + FROM foo \gx +-- -[ RECORD 1 ]------------------------------------ +-- partname | foo_p202506 +-- id | 01977a44-364a-752a-b62e-c026ac2f930d +-- name | foo +-- created_at | 2025-06-16 21:43:00.17+02 +``` + +--- + +## Une pratique en bonne voie + +Au cours de ma prise de parole, le temps m’avait manqué pour conclure. Les +adeptes de l’extension [pg_partman][12] ne seront pas complètement réjouis +d’apprendre que le support du partitionnement automatique pour une colonne de +type UUID est partiellement implémenté. + +[12]: https://github.com/pgpartman/pg_partman + +La gestion de types `text` et `uuid` a été [apportée][13] en novembre 2024, +permettant ce genre de magie pour provisionner un certain nombre de partitions. +Les fonctions `partman.uuid7_time_encoder` et `partman.uuid7_time_decoder` sont +équivalentes respectivement aux fonctions précédentes `uuidv7_boundary` et +`uuid_extract_timestamp`. + +[13]: https://github.com/pgpartman/pg_partman/pull/683 + +```sql +CREATE TABLE foo ( + id uuid PRIMARY KEY DEFAULT uuidv7(), + name varchar +) PARTITION BY RANGE (id); +-- CREATE TABLE + +SELECT partman.create_parent( + p_parent_table := 'public.foo', + p_control := 'id', + p_interval := '1 month', + p_time_encoder := 'partman.uuid7_time_encoder', + p_time_decoder := 'partman.uuid7_time_decoder' +); +-- create_parent +-- --------------- +-- t +``` + +Cependant, le déplacement automatique des lignes de la partition `default` vers +une autre au cours de la maintenance par `partition_data_time()` provoque encore +une erreur à l’heure de la rédaction de cet article. La [PR 739][14], proposée +en janvier dernier, tente de corriger en grande partie les angles morts des +travaux engagés. + +[14]: https://github.com/pgpartman/pg_partman/pull/730 + +```sql +SELECT * FROM partman.partition_data_time( + p_parent_table => 'public.foo' +); +-- ERROR: Cannot run on partition set without time +-- based control column or epoch flag set with +-- an id column. Found control: uuid, epoch: none +-- CONTEXT: PL/pgSQL function partman.partition_data_time() +-- line 63 at RAISE +``` + +--- + +## Le mot de la fin + +Les articles que j’ai énoncés précédemment me conforte dans l’idée que le type +UUID dans sa version 7 repousse les limites connus de PostgreSQL, notamment pour +ce cas d’usage du partitionnement par date. + +L’accueil que cette rapide présentation a reçu m’a fait également l’effet d’un +appel d’air par les utilisateurices de PostgreSQL, voyant dans l’UUID un moyen +de pousser les limites du moteur de base de données relationnel et open-source +le plus avancé au monde. diff --git a/static/img/fr/2025-06-17-partitionnement-uuidv7-01.png b/static/img/fr/2025-06-17-partitionnement-uuidv7-01.png new file mode 100644 index 0000000000000000000000000000000000000000..710791f6753073953d6f34c01222540fffa6daf5 GIT binary patch literal 26490 zcmeFZWmME(_cs0&K~SjyC8UQ^Is~Lu25FE6=@wyV7?BdG8ITwn0WlDyyGvx~GGJ(s zZjf$x&T#+lwSK?*e)E6#ym{6_)^eQB=j^lV?0xO)h>>Vt{xFl^*-)VEpZ;QnGUNTnPtXtgBg+{$|ZgGKNo;9Lvm#PYguTF=oM5)x#sdC2>F%&_(3V|{pUvz z^1$-zimbzjg&tOnnWr9{sxe;eTryw;fpK@qg_K z`TtDtKfLDunh8oN(1UVJWjRAqHa5Bm_5q5Q4)}1KXh1!`QZ&rTJ|WDRvMM*P@r(M0 zENmOE-`4~LG4{&sUgd_$+zgzltrg7M9P?6ydTaeepmhf~4-3{{bGn}kj(>#(y-2w2 zGN^MO7XTfyfnBp+#a*my(48p?u18<-$qT+ybfeczVAVt2VUCpL_Yy!Dj|@B?m<#q zvwz;aj8~9(p623Yt+3JM2fGshIYb#2I+78e1eQ|;du_}7Xl0;=>Yx#=&E>&^#t2?6 z@m4a@^fG`!DhkwMXNDN&^5(rly(S7)0!c*@V%Yf9&OzAarbFW#o}Q#tV(-fZxm5p6 z2Mf_ioM_~M-*L}W!#~H)KViNK8F`W9SujtPXJBZocO8*ePC!sXWw zG(ZwtK4`au-m`4G{!-f=&wQVnSHrVi~#UfzM0=KImD9*;Z~es8i6V}9W3)oGFl)7x2;6Xlq+$2mrf7?8(Xu82%Q^#cUb`SF#F$*9r% z2i^iNEPd*oG}Oa)=ficPi>oD`A$h~r?0LiW*&;@n5o0-NXM;teegj6Li>Vi~!uo3O z5{$YF^vc2`^~$#ia(lA+iVZW)pZ~t9Kk}}GlC`kBlp5y^#JHo2A8NE&hOUronvx1m zq2X}!4?Q{2lgx*&^Q}4Cz@MF;7^_7Zde@xvk2GThm%rt~`wnIox>!>YLXNi5e7I9} z8Uzz@Qnnj6JzgZTgKyK!cHTs?M|)B!sIY`qqu$x(QJQs_16f7*UgFt>#E1MIp2L=D zN$oHh+d+LPiJ_CU!^y3-W~^_B{Gy?x3*PD6@6F2PgZgI=-s(``90wd{X0XJHLL!bZ z+ z#LqkSY0SdE>)9Et&)ILZjMRTN<;KbFjdR=sj;B|k&>u)7&nC9H>nZ}Pu90D1@!M|H zjPCu+4J}Ig()P}LhD}K<7uFDK8*rAYCbP$vy4N?<{892Y_C>ZSc7I^vZ3Sjdc*E5J zKM5p4b&dDag~X|Q8)BkIJwA^6cCvqe));MFtj$t@8wJ^njRTlL&lH#*IdSI>ALm){4ITXbjrTpFi- z%l}XP;Jhc!$Z_K##uLZD^ma{0BqrU0DdQ<$Wo!`lpmOH1d4zTGVFtaj+UrH8?MCbI z%h*>_Y6TPGJ|k(H=fzExQrv$d(#3});iMZ@aE+0{g;RmP^U=HH`4!F48cH}n-^LX! z^bkXtfCNwPMT*7T?L{sH!}ZLZo%`@^1|P$)Jkrt;vr|XPHz;T-Vtc}D*AHho7hJA{ zC?`B5g_cgppFCTY7AwvXld{t8tC3~@sLr3^-0R~}rqtXw^EO+yJPN@8zfH%pX{?t$ zas0i0v)s|bM7H*OdWnEVUYXn>=Q!u&10}PoK7^JA(}^wUc0YpYNqc;%FmP8&^%&k0 z4Qkod%G{SDtlpu_GQR&S>)J>D^s84r%D$0HTb%5`_rs>X_-4Pbj@i8Ps4@>>+4c;lI^NO@5n1=#6FAQ zd2n6*U%CV*lF+8w2Rs;znGiCvoKp72ot&z)>BP)l*zB0c=E_)lRdmHhmFtAbZ&+ad+pa9czq*;Sq3tMr)TMfoZ z@s3xp$-l+jqns6NJpab9;@Zka3NMw6V|jt-qL! z^e7qK^MXpFJSWc5?z*IBN4^YnlPKRqYlo82nNd`abN`Pa@EQt`I)Djke&=+LJyNxH z(OS*OBQ624?5HKGodeUv?_?^nG*5`wepF)E^&W~=q0mtT}`$0D#R|4r_ z)^!m<$sN*fk~>y2D(@}I#FVW|53Isfm6`B~i9M#lM?CmBToDMNg1GmWiSY++cTqaD zR75x_TWy<{^Ti0W%hbU`zu!1Ca`fxwBpMY^1((pjz?}#g4veeBeFXy#t-P&g zc5s7?Sf0)2uk^7zvI+8m7WwyNO`fI=f_l!jc|rqsWO9iLHLGs><{`9PTbi$0=#kW=ye#p5W;xdfwwvdQ>!@I2l}n zdS4!{Ykeui)f>0y0`DTALG?!Yjn%pYg{Mb~YJAWfHom-dzNJMzO0Q#ItRuI>&+)T^ zw9N~bB!d21+$uJRtVdU#P2Yb+gC}MzQZTR**IlgOg)x5yVaOhe7cuUu4rCVLJu-Vag zmhAp}LuM}RFOHM<+Rn3tB3={46M=+GVXvrb#fWE*RP-X_CWO<{gf9*cSX_*0s&)|# zVG|pCo*g|-zsl_vIcAb3vr_O%!@ROiv9!(h#ObhYY^qio{i@bAccx7(cAWsXb<9fQ+ya{8Rvu0{ig#vM8i-Ineou ziyU0R`LXhCR{}SX&G`BXNU(tqK;XwC-^$7AGXSMN2301l&{G?I0kFc&tb01-;465S zrKjPy32k{wP=o1!;13xU;?ge!-*IREdH|lAd59~Kg-FkgJweY%lmZs&c$i?)3|`KY zob~h(ZuMkPHp8s1AT(~P0nwfU(WqW@e>JWFM}JSkhe;4M$g7tn>VsYPK~NSlTZ4sI zuIhRb$br0T{_ZgW1gvfjK2(Bk=l<05TW)DKyOxB<4V($+U_j-=b~Qu(HWCiItA^Kf zwx8;^-N|V$lRjpp!dnr~TY{mev7s2Mg5X+@3cHZZiigH^fh)YAWa0?C8`^1p2roIF z(cAmmX-@?mZ|`~$6mOphs*4wcEg8kzP7FeRy8Xbe$cK(Z18-BU6N0KLyI96rv-)cE zJcf%cL|+WtUBwopCM3uUuAUoxPZ73zrluA-;k}rS%~DG>j$mjy0M%@D>$PWwRr`9_ zQu)&rvmO!B(Y|*H)b1oY`vTWHNN;iUdT-~Zi~fFbkwza`P;gg%?nk@hf=Y(rU6h8|BJ(Ukpm#OM}p9+U?*fdci91Tx6@RyXWnjl8;fs|S0|9_GZWVe!4sS~DS&M_sUH8&B!1_o#jLNTk^0^NBh{ zf8#e-A8kpr{MZZy_~r5QmN8W5PT?p@wO3d2f6L^o$W%6*t-&Pu=k?Xn{=1Q4BO$P_ z@7?>v?WGD7Kzq^gX`SeQzJmgd+Z4~`rhegK!(oy$!}nKVLbNiUB=vlI?0`<74=_k%Kc{Z?B_qZ1{kdiiQm)1>H>ue%Yv zVo=E6j2{#BEj?P+xxeXbTI%+~-+0l2XQQ8X5M_~AgAuH${Yb5y%-OL|-Dy;qW6Pjk z=^0{4xWDeVU0*r(CcVAc+24qQ>N!iV;rC-k-Bi2_-s(`HdjAD0Dq3ODVe_EBLh4=i z$GgkeA~V@BuQ7N*z{NS*FMCN?T@EIceQ`J&y^o>Pxc_V-h*YA3_Bx~Y9QsMd;ME$) zb5$5Alg#*&D0=%LQ=bCfiUBPWf1aTlsU%N)0-vM#r1gp+(=u&!adxr0uKtqOpl;g( z_FkBf7VS#6h=tyK?XZ0(zRkMkQN6)N_=NkSaX^yaLAOEOT5?d3-DvO5`H7h?d}v%& zVz}pSS+kF$oph3^<$JqNROtEiF~im@?vTkKhqeo=1O;b1UOkig$@*@Pg_n~6aKf%f z-%lNftl#OAOn=#MI1>Ti8`S3~{l;ZuO7s#^gMr?BrdxNRK`K%qvahkHbF#l!(k4*t zzPSfajeJ!jB+3TO?oGDP9~b=9c)qM}-S ztdWMkr(5lC3=-1zKwDS$wiCNDyBN-WJGCg#G_gr${@yKvCihhE1S!x3MwR8a6PHX0 zbFnYr*fsI}*xNTOso~X)0T5mL zx0%Xb{%t0#OaK0rLO-Hd7+YqiG5eJ1%Pst0k{N!)9bAErV!!V9+IHu{mMmzsmX4S#i4+~} zpfYk4JUEv=7`M8~TOQ-Cd$Rjm!$kHYrTfu=P&beE0g3VF_W|eLCrh8B(G`rodQs2(rkSpp7qg+GS4BCA>Akwf2@Bu--+|#!)=N0i;F|IgB8@01)6I;R~H_`xwyF}d~h|9 z^vPP86aCU?MIO9nKC#eoTea&GnG#ImIoLs6y61X2*6QQY`fkvHYe3Qq&g}{^*|Jn7 z|ItzX$`Y&NO-rKRp|LP)igd?u!xSEJ4krJ@kCH?ovPfnBLt?IQRL@Kp(>Av$Oh~hb z$auf;WJA({*70m-3O-t1VihfoMag7nwF*grL+puE>)J?J!KY8(ZLgJBNx#}HCZIO{ zVG#cltE!wca~Ijp)`;#5rwPN959%4!Y}PS(y4*V?Wb*w3dy&LvVoX~jN7@n`OTw@FM^fKh0;b`~6r^*2RVHPRI_R5v>P@#3RXp+HAMx=yG3 zdZ4oeZJ+N_*2Q4_GQ1a3H2t$4?11c;6^`-+abhARS=ZnnWj?N80DW+qlGYEQs1GZZ z@mWZ*OAAcgw{&{)w=B_0?V++rQW^T;Tj-PLZ`a+X+Y)aK zRI%hzL07^&Q5rO**Dad=zW#U=tHS3x^?`|nt!l)UZVX;E@rlsjg;@;JgZFr~T6TTF zqH5IgW}lrM@yfyGE8%+_+w%u9C1Z?!ZLLoktELJ?%@*5Q7}%h3{sJS&j+=bd-`@Ld zh>w9X6AtX_els9nQQz1#gp!^DeZ-VdkIZCSJ5PT(g94||&WK%x-@=BST=@hz;VV0! z5t;O-BQ`R?90fiH8yn_dTB*&(4O#kSFMLlHQk};oBT*eW+S#?~oh)*p)vwQ;o6fMP zHjpPL3hTF(jqJY!_?6A~y}LNq;$a78N7R}7V{^ZHR+_Md;rVtFH*6~=xg%Z7Xo|0K z?}}KnV`JY+<&a)#rimwRJZ7`YENM)C+{_1y7mP6T-3npwKb+ox8O#*MQxI9RK(`dd z&ktuO#=p@w8*hPX0Jp`(^D6jQB?VgTN9V8GXrhP2_lz7%LWDV{Ud~1q`hg>Fb`%}Y z12ybtc=;z#)N5_H79q$XY&V6N^4m!FfU$k|obo&H{2p^*+fL#9MOWWskgs9)mxQvL z9m&TQMOdv`!Ppa72PCG~r@+<+-mokMrO?;MQWiYZ8?Fgkw@bgulA;bK3YxH)@Zyt= zI>{s$$1F^rh)0b+hYymXuK#wQmLFOoFzI(N(MQnA88E|#mE-tFtCRrpvr~Se{GL<3 z%=9OWeOPtXeGcfo7GQkQq!XHryd)E^6nDfYCNvxL^ZLy%@paT_hl1+2ygw@3O$Lke zF9fGIzeVmDrHVULj#-S`lm%#b{3ZnaWREN}R1)MQ6+tE+;dw$$BKO#!yQF){X1 zW@~It+M(`9@XUPjt@dTw_zAHB7qif_qrcD=x#)2*9X zeLF{NGS8>zqB526Xjk=SBgiRPstBm~o0RnYtE3Oi-wzXAV>VFXe*34uIs|fz8x=-7@NYji4_n`<+FPGM^&<;t4w}Q$e(gv zDw|KKQ5{RQ6nvXK+?wq?P?zL7^0?K4DpQZ!T$O3Ux6nl7q;ij6j{Bdi?+j3}vhWoE zI1CZ&ARdW^9EWGoY4x#Sb;d3R{kUjJG42_lZHMqsWG4p&`l1MR_4Onn{IYI zX{j*l;ReLyDTwQG0=_oXawlho$42JMf5>N(d7x)b!X?o(#1wI4-bxCvtXjD{L(h(p z0A%oEdjfSk|CajvFXKhqZ0v)ve+~wsn)l3d)Sn$d-9{KAhS5IjOYi-*CZgB&fA-T} zTM{N~7S6E=B7s6uf;oSuE9Pq%WFvW%WIE$iW+5>EaUi>4XuT-UM(LMpwGKI{repb| zh>}G62R`IscP;F^en2&Dd}jor5e%|(Xpp*(o9P1#o~8- zJ~XvnPq*PEnV3yF++9m}<&cCO^uLnOItm`eFcP{2^{BU8kk~*KnL^*rI#x};vOhb$ zPhpm?F-X!WK^ZgaQz^9{!jfEIpg$i#+GYS_&$IYyaqLN+^=z4^f@VN5AkinKM}Mg;)?vq;NCx$dC@qS>W1?VQC~ZIAbxUZQ??qfe$>}ezrHwr!7SP*o zCdt^MB^l04JT!f82L`c_ATH*7$UYyMHZP`xAa`d)uPKl|+3sX|pY_`?HEZxUIN%gv zpT%wjob3(ueSS+hT9ZW({ni?SDxtBuBH8zn-L>z^^&(;HwSe;@yRXn#2Swx<+cj;_ zmr$Vh-sEY(w!bHD`j@J_sr&32B+dR;b>>Bk4sckMauzgp$W?O2<@StH<>V^|gsU{+ zhWVp~U3F9kPrxZlaiov0{~B758F=-S5gpUI(g~c(aso z&+8aDmL}r1`RA?+>AVtXzf!Yiiw(}^;xwSqhI5R@RQ=T}t^wBh+EmckJjMqC1e+J@!Tv<)ZxA1B#n+qtOE$~lX6+mNIi?M-YWBWph2pR$3Uqz2KEMC$#^V$wwEsK0G{&(Dt*5eN}i z7jURK4=3byl z5onF4iBxRdnof3hd`?c?JT1w|RGzeF@ci8S4*+!30(J!>Xi7dA!`zfb>Uijx+oDu) zTA?r{x(=o^pP5yM2WK{(lR7pV01V8pC^to5q)YPb;zrRNKdzClp`U#f9tP1z2s)Pu zcaplz?D2r!p28^H)jM8@ z?O_ZPXHUG#J9--5=xUd08#+qw5kW$uY|@=`+hoeVx-G`p`ryGNBd!PKg#DQ{h7u6( z9|8^~Sgntgg-4!mdXMaVm)6^zlV9olyAQ1CenS{E8E5#ykyEH_eAgp~+?>4q-P(jc z#cJ#Kn>Veu_ZYrtAqM5}wZPEUvDUxYGAV=`kG(6oRo~RRwdTNz$H=9bAhqyK$o`l6 z0M5Q`IFEY&Pn#7LHpgoPw0)*^)1h=})IaYysk6DUz1*B^n7BCKA9LPds|pXlvFKI`0;nB{%)NsEfvYxl z)g=T&5S=Vv5B;Q!F(aiF!aR9PGi}*qmBI$K8d;0fy@RkZHr-Mkef~Le{89KRgXE#? z*=`&IXk01*Rwj}dd2WKQ9C``1cX}**<$k<|UlMQTx0fKP7}gz%@?+l_y~ox3^Brx|_=pq%+`Uyznpe15!| z9T)N*5*Q0;E&v=9N;kX>fcfXRnV?$xXaGvP3D-a%m=(8e7A+D(wZD={EHO(irn!&j z#FT*iU*h1VYXG2RcklpUa~#}hU;$(cAKc?p1V}?`YKkkgp2VVcF}S8cl80?;ZY8V8 zld6~qJ6QL~`qHSY-&Rl>x~P4^ z!%ff_udKs3Do}-ock9)2DgO0ID{P@k4RkeHC)?fp>i~I(zHjR~@Kw`mr&nyu1TkR) z!oJ`6OX|vMILeXh*KrikCxr5;Dj3Z`5N5YcfMLu)QrwY0pV|beEd$#W5FokT!CIh^ zA%nhci_JIOu-wBT4klk2BiJCc5w?2lKp}3dm-HkfvR`9hqa|R3mU3asX}bklPR|3Z zJZ%|(?D$7Rs7;?&O?VkeZD10RJpqe)*KvcP_m{rfjL^Cbh&vztg0NX=QuFPZ*{Iue zIz@50R&@Mn4uXTawK7gaMm)FwmU<(YK>eoTLIK&E!T2a1$ur!S^9H8?KH${fpQoZ( z6-EoHCSM>Xz3nmuBXBqc1JIz?gy+x*Xuu6=5~6c&QJ^)^x{WxX9d=3Z3a%~7g@Td1 z4%mNcxJS#>mS6;^`rk9SDV875mEG(-;H#O7{r=Tg=SvLoZFv6nZD2E&OD|?0NY}j$ zMrB!m5;~%jNq5nAlfT}a+Qb7L5t-)PcyuR#rJJ+y;@pQ$!2GodNMMxhekjQcp40(xS9PE7Z9bOJI76SdoiXTu2siVz4EGT0?!3vsQ&P^iH4s<&p_jhg(=){?EF zN_xenq)IpEM66I9^)o~5z=GjHm&?2E>Lh3ZGkgGMpwe-#{$703P+NP}*yyt=k#6DH zH@`~x2r5l~E?I9C*g{xcBNq@Ar!aPCL~cvsGYim)lSrTBHC8Z?n|&NF zfHRAOF;iJbdXz(c$rEdW{KCS@hJ(qm{ZWUaU-VUMP}Wt+t_LDlu>XKTNrW_L{U5X8 z$%DxsVBS5KaJWaM11-H}B*N$!i{$C?vZdYzsGq04D-3uRSgF=Q{_uAteC&HL8lD4= zboT6nQk)O6KWIqQzqF9|`fJyVYMAx7&%-UO8MIVj%xS#Z73bZE>{;7XIF%tw&59L( z2P$w_p|@7N4p=B>fhV*J=s}J<=WQq0BxwC)FHXx`(e-=VIaj#q0%$3hS&1$E13?#K?=h0?{GOHDQ3=gZ{Z)&(zxn04E8Ts3cRs=}!~J z-ZL}b2+Bj5qd7`k%$m^On8F=#i${~Y%fBa1n$C~&e4IjV>lM!@8u3*&1njSkcpXe2 zBtvoFkre&&)M(lB;a3M6aNu&qCy3GO*y^z6GPy8P9Lj6t@l$^B)kR_5h8rhz+qqx* zAkBewyyMipd=&txcDMpg#CdW&(FDx28~wwWHDOM5>y`Te{lV^KdtwdS6U0-`VJVw+ zn=<-*E3gdsU~a;y@I@H!{7UbrUf>v$BMz$$7E8FP+F>L^6kf`enOzc8HpKW1!$8z$caW#|s zUN`V1I6y?XbF#WJg_wN*2F^BZwb4mBq3rw8#GTT=-Em5VSLU2>Vi5vq0v2zq>H!8e z4DjNO(f({)N8Y;wTsLm@X8uou)PlN=T2H~2>Rb@EC!zr0SpD@SA~k|?@c;%{KB3&| zRpD>&P(ND+V^^>F=3>mN+3XB|x3j25@-NwsIo3bfMI?dpL2FEx%&*6`aW_RbQcBP! z?^yogTi{jrTnBm|Xb3Ca4n6A;?oV4i&j%BiUR>T5bJ5Y!sg@&4e%{sHoxbM9if2IdLn&~$E*vuk&4GNq$wA%N{;h-QT7$NR z^dRcj0}gcx*ex)SYrxH9Ysl#V%GP(b8c4`k+|{LQ_4qY+HaYb4IX8ycelZw?T_z%#&9n@;R2C1uTWR%-1w z`#$G+`Z;XuDBdZ+65SjeDlkt68keN*H?8cJhD!KufHj)J-TZt~;VZqzk4H|#Rv+)^ zzLW6GT`%jG!F5xk0LG*pwA+qzz5|UtN)=C(KW`zEmC_flk&7$II10k&-oRS(*iJ|N z)BHo>aZmA+Z`G=`Ac+#|Pk)Y*=n4f5^#XAQZYo!`!b5?&2=;IEpdgj3ql_K#aQ+&<5?h}Jc-^J7MsjXJV}11vZEnjAn~Pfu z)qsK3gjn(G=}&WrL~uM&*rn48S_bD4JhlaGsybV`%lGR}gs}`Fcop8EsL(+EsO1#9 z_pWg~h#c=}QbI2WdsYrze5yG9o2)Qac(8m5rr|m9j8%J-=lV1!8H_Ei_wh~Mxnn%4 z1rpKWZ@hfTPZisl0_w{Ye^C*SuaR5wJOH)9DvYfkO+D2nf%3d4?dEg$dp)79#c|dd zp-3gTiw3&+Id~h=GxvoJ?_XpO^ZT1t@s{Y$Lx_zfy)Q@r>tKB9GHasr<-YtJz-sMG z>byL^JFwh^S0;eH8$%w0G2M)K9(AdjBFv5>{)+T za{hUT3#i(-JO@)&UlDB4TDb@Bt>2W;t+5WH zUM~%uE$;6_nMlj&KBbDk6QOe8AH~ybuMK1{_SavlEwe%$;-=*ckNKg3R95vSFLJ(& zm-Q@*jk^R1n>trdhZag3W|aKy*o@!9`xNKR2#rk4~bU_ z*oMZ+D46{*8c6lO)Wh8;kmc3!>35H?rOs!BKN1M8K7nVw#-ZBx{nJp_HUEOjsiqU} zKmh}#(9PqG3%-Au}u>5JQTcRDHYCDQf(s`RpOpkP#L}=eAF$b2I>67WRbYU z`$mjhQk5np`oRp5J|T?m$;0so%J!EJ+_=Oxz9Jt1i}Dp$Mw9n~snPztGfj&KjfQFQ-{*7kY-jm% zmPxb2fj9H}G$T5eS*Oaq7B?7P6gXt}mnxkVmFI@37gIU#nmA9Q!xi&U#G|O|D$J6K zNRoW%&g(24|3t5{egBhJ)L07sj3%1-A4xzu19lK76qD>#>ckQZ#xhX;>J*zr?bwW#8_L@p}+E@v^NNm``hLOjg%PlM60h~>du@t^8zJTtW& zr;!lK1AWYm&WH|c!RFJeh;acyo)cI-UU+g{=QIF4{jAeVD`AK zFSsuldCequE9HMQXe!B4ejB#C_FQ;DXXegzvBy$v_i4h0o@ai_k!=tFYkGgzPRK5O2q!?~w{ zSoL&^*(3%>-Om~&RMI{JsfbK44WWb?Sz1!O1SvQDgykyn^&yBc?eNE4S9{e5)tP^~ zVtAmg3Kjw?s=i^5TI)oP19l{JiC+`D;U-9wsU+@RQoOmP^`4Cfw!NjD z9ao7Z!Q;U*@15&uzE&)6ZmDLyEju5tZA{F19n!fWz{ib3CEwtn_X?#`MhRAS0=Z4S zR7zgi{sJ~oEq9@QUiQ^MUK#M$itj`*-1Dj(ex&62=b6D5c1OIcF9rmYEE2@>e8HUu zqDMgbV^B+st26Hi@_l7{i>8SJ4X`}5*NoMgYY6+kOac;f7zX(P0XsMv$ERJ3dV7YgspKoh%Hz%T`b94 ze@de0FC9~)Azr-_Y%Z76_}dV0LddF~Y_W)??1R^9dw>0cQi(=AYyc&1+>gxFzIQJa z_zhu}IjxV85nOs~#;W2Klu6fN?O!!NFF?@Mnj9HllcJEBcQA?q_XJUQdsY4sL{?BC zp!rSJ`)u=JnK*EIHy?W`w7rzaeBX_y&T1I5m)`|{Sg z-P77A#RXz@Lv|+$xe_x%W^58-p#tIC;YpTGK5x(Rhs=Yyg(gj_ zKOLtlt%L?<>|Jq}-MKr>mG&b1rF9j0xD9};79l%izEI;3DQ)jN>^t2s*riD^4zDY+ zL0I8ZaXl$z_)&ld-qhBc0YsaXi1wwVHv}jb1JgihQToPY01KEiQP9TB2iBPdz zGfhsWYjkc2a>xnJ{Xt5jn0u!$9^wO@=>({17tj=M-% z)<92MLQ>18PjsLQO4?bft~2k8*}V2CClZdtW=tqG9_&e?JE6boL|J*_X0-)H$;ZM^ z@}u=tZQ>OtQ9b3dN-)t!Vc}bxppmlzwKiv+FNN%~Epe>!EQ>-4!0;LS9E73V( z5V$5?_{IFk%s0J7B^BxF4SjzD%WS2SbWu1=W!Sad-sNd>hv_vZr* zK2kP8DCzXZ@dUYiCiNudGdrVg%V~5T>!;{p`G9v$h0xfS3gb+M+Qmj`OBCI@WXKzq z$CQYP8@0SpE_%*kw*aBKi0WHbz6U$^!5delvyom&wnKPs!#^kvfP$ViwopO*8uympPiAGdm|I$vMbiMrwA7tcy z8r{haKF_x#YXa==p(DdSDd#8Pcv@ND_OkVT>y_nwt9J)D&4SH>38^AWVI+gncpyXo zqXT^^uy!1S1fca>*L3+b=5S<2W&=?XGe=yq4Dnd!q_X^PQI^{SOt0j;IytAe5j3g- zhpgw~Mz1GSHtabPW69aQIM2>Lkf0Q?zH3Bf9L#fHjjEhBNbMK=jZ@E14a?yjswZ(U zYej}9BblIAr~QazbKp@kxELmYJ($63hP~;SrEv-H_M?HuZVG-Qr;mEsEb>Ol8qA^* zg|w~><_~HXPhJwK+o^blvrzK7vXAGr;x~Q6yZPWzpM}I4bcW(BK@AI}vuRoaHda>F zX&Jb0ccuBwcc!Kc6tX81IP42d^gGa^4FuEmX9P7qz!31GFnPgu0))#rku`HJz^W+cCDyxuw$#sWR!m{NtX#}`(BcQisnsJ=4^LjL32OC=xq&#r_H0C!KtW*d^ zs)4vr)6Tly82e$o8Rh@6?58 zwi!RsJx|*PS>j*UK#_!(6!Vw69)keoV#aaVKhCIf3m1+)So#o@Z`c36&B;0*Wujh4 zJ{|sg7|aTXMQXTk*C)jRgk=r!ZvCt$eR`dH6U*ZM?v)%)+m??%*p9R1(bre#l8*3k zi1Y=B0ARnQ)7M`(9$Ik=sXJcm39(hu!vErdujLlqxFnWK;J?W3Eg!wE zoj(>WmbvrtN&kmdTbUEIuC%Y)lTDF*m-PW!QU8%)bpQMzu7It~iA{i}y{L>*b79wuB~nr$QMIX|^a^;%THuBSTC`P`ok;8%x; z?+T_K{j$>&*~Yx(&Zh=SfHCvo&-IO#^ZE^$AVxr4Fs@5iU{n>gHv3N@cH!S#0F3cW zmvYZMG=hg>1aU*cs-}#}W9O?2Fl)%8ha34y>rVj}nnqgt3+}Gxb6^{_At~TVx^!0w zNz2zOBl`S?+l>MDs7utkBPJ`){G%T@6@NT~&EswcJiNsD2!?re*?>bm1~>CYJa}P_ zGbfu(n_h&U>tD3A8<&oa07BFMk00LuFT8L9kKQqV;n^< z{ww|Tj!ln^^=%?y0KN*?bK!39Qd~Z7_{qd*5L`<_#)7mI?{U$40&t%4<{-i`KvlBg zF08h+W^x1p-@!%h)kcA~pw#sTYqR4n?LbTM>nd__w^l{K+F!4y;u!Ndh{j4xsLKOz zWdSp>an+J9Rm_=jK0BP%8PzfKoD+xiG8bKj@XqL!Jy#&f3@#PJ>u~ITKGN-fbHq!d z&%mzv7PjNH)k{dk#sx|@Z|MRNAupiz{h8dd9o74hfKRb+Nzkk)mklCV3moABjT9d;~w-{b6ee?qK zaTaly@thW+Yp|T^+~`WEW9&Vj;E5=idaPeOd+&-WO2Z65*bO7niH9aYWnj=Rah zt$Ih8XyAtT;r?K%S}V_|4|n;huG86W3|P65*an}2uQJ+cM^rV)dVoT%1GY{%2#bcV z^47QZ4gs@v{p;tbQULJR^(ktrLStR06OEioaMKGtV62%_znlT~OK@MPpwBoLDpb%# z-62PTCiq3p6^a9u{T0m9Y+QZ*1QLz{8Olt^8_hVS3HQgFa*s8#AvaFBy+Cc(fXJT9NnjOHg>2dIR-qJM{ z-25n8iQ^}BxsAJ81P4J`NCJG-eRZs=$aDEu>+>PpOre$V=ljk2ohWy*EI)v;ORo-> ze73@)+i-FC`6*;JEq5YIBV%I{x6cW8`q&acPU!vJ$g?DKerPomdMc)hHLxOa7%EKn zsTAah4@2A|^CLMZ|B_@n>Zmx886D$IeSSZgkmS{@Yu^=rkB_XH zbKy!V0hPhGy&`b`Xly=6g_3xQRe1~de<1i9&Fb}&vPhC>npR9(@r~qIj%#acEri{QWhYo8T521ank_bBO$j!$=(sYFgBx6kHOA5erD&WUHVs=w)VL;zvx-lL zca{P2X@g*s$I_4H`Gl9R`0IxA35cec@k45y0IHhT%{AeTqOO+R1($sUjPDw{=a=zhB_0Yb6Hfy2(_8-H1;Nr`q0!(D{NaW za=Rym+E4{IYKS7MJNj$kmzb8!Y1pKzuV3fw2GT-d>J(*$jUVP+;DwE;O+yTg?G6Bw ztGDB*pV%zSfXgu18>zdGu=@G#1_#BVmb{v}y1ECn*cdPk@v`~SQ_k){e9Skk{8IJ@ zry-r+$$C{G{i(FWlME@k@j%0=ziWUVZDJ^$>Nu*fd5Z~ne5Pm~<8gAY@3L^-9dFBq z0+b}aARA8y?UEs8=jwOa^ec%>EO^^%W&K`P$%80mpI>93nm#S2U8;$TXpWbc-MB>` zTJ~FAas=FqGDZlH9?kqhIoz0$T~CnSOvk00#x2&a=Tm^8{?Ftb4UYnPzy?_hp8ly8mzK_d0$EEvE{ z%(dJ1Q`aK?8S%Vi;v@%F_70CI$1LySigoZ3**)4nB9z*w*7pq=ex>2_|bJ za0rW-zi_|6xp0)wlx4hiy{TI#`|6E$ntrLEkNmEMf3CEF{tJpDkE>fl^=N<7ey$;m zkKd@rl;z(WzMiSx!@WzlptcfN-6hH)^!AnYn4S2=Yfo}w!CyjT;3`2$<$#t-FMv{d zMTQ=HmMSd5B>kF{5hVN7SPuE#%L%*Z{*^j5U(7(*TZk0 z(1ygwSp1*%uEZV6?)`^E*@nqdvJJ-0%p}p+4Us|iA;cI!ydT=a>KK56h zVZ@SR2ZSriXs2i{w1b^e*HjOV=;(N`pgKF@MOnBa+o}nfmEKUY`e}Xr`H>zR5jM`& zN!&~`;0|CB%VZ($4d~D%1N@-QYdVoivQHH|lDI1+xveP1gDW5*IC<4XCr4rlW(RS=~X>*Kx%(6)}bnj;4>isOFrlY|v*Y zEBxrQ(A2aLt}c{5L)XmQ+Z(`lULvgjizm^YW^l5ICjw*uCcI`32~++w2-%}(lKG4e zn%n4n=sD{ar#RDF)F4v>+&WFzK#Z*)JyiX@t%kuZ8l)V=hR7g$gz!l+1u-p(xXZ>J zj+sc4Fc?ILeT{xe3fCoeyKx&ORgTlIGnn(P{@WWYhukzi>lb7`qUfO&tF-gQ@W4vNFJWv)$2c@ckDy=F&80T)RC7z zQCX6R+&MX(VGpIonlX^v$JKj&$zokdnCpR@?*Y!2_reJZRV!}JIW@gYeuUww2-j-n z#*QO7!Ke0q44fF44b|BX9so?7gyHEmKj#e^6XFlOk|FQnjUgl|*U#%;_>gTs=$a<0 zOu6zA7LVTra!Bp-u<}1A$8BItgihGb4a&X;jMsCrYhG*GmsqiBB{m4YPS|Xs;>x}> zzKTs(T`yN+;5Zh4nxMK52g|3>*zF>?c3ghIQ0F@%kEPgs05#33eWQC5Nl-u44morBJZj}G@KwN;s1 zLz|?*(%JpjIfw%?0w(o|sL~4gY;CY;%nt~mqekUE-&G6ilE$)Ap2)s20JJdFSIM;* zwQyRFx_wpMr9v!t^u7L0XOU$#i8^+%0&~(eimsj%pn)EpYU-P9VVSEw+h%(Ot%as} zx4mpjK@Llng2b&Z(}?^g3cfGVB3^_Jn@;#`94|cO5w}(Rr{L3S16S9CR1gJ(MTz-S zX9hLHKXINee&9hQK4~6ET;pqX=^G7>)oYZQbnLx2w0z~6g*0MHT$-YUC`PB0M z97tO-S6n|c+SKXTTKBw~K?9IqT`+Q*H?mC7*G}yyD&yr_2;31hrw=bGPIL5%3EiEL zFYrC1wDAq>{SK6&c^TY$wLeN8O*!|KeOVe{CAy8c5je3JR77^~VRTytHpTAr6~Nk2 zzb0+6b)-mhkO%p|mWSA?7+Ic|I?ck&VsEL_C>4=O;aVuxp3!!DUgX5MtW^0uCaT>I zhkTpKU>6{~l-032tkOhL8%AVA_touKt8$maeR9t=#dEILM8NLq62(1fSNdi*&lAl8 z{2Q6gA~-j~E;H@FD?VHPz_zHd;n_POct|Fgk#w;BUcE)wx zb{^vo5}ayFlv^~yl?WmZM9@>r3;?V$*1xfDm*xvfr&EJwL$@`N__T$P?2UgTgIdL$ z9DkI+1WS+lwkL>P4%|+YT#CACG%#0W+E&jud#NEXxz=jH|Ajr|5xm3kS_SobTKz(% z*Adgm-VmYIQ*)q9wkxkR%HBFqpOct{)KTN_J7wgA7&sNu%S^$RhE~vCJ2+UpikL}q zC%NAL!1V^eK|<#B`dr1TL&t?4qXT7-F{*Vr6NUgSJtXVfPmiIHu4>bCCI>u2pPdDd zhscL!?w}^e8YhS~zNUdM9}B}hO0Z2RUZ)jk-_6D*_25iOEF3GI;-#%sEBUGNRh)PJt#PiExpo^ybCZc1m{OCow+%u#R1EWZ)ci|f?!+9QS3aZ#fy1?at4?RIJu zGL7gG5t14C*^5)bJY~+MtspXnd4rx< zfbILsyoc;O^+QqOG*eUW)DXc*EzSI#Z)jCYb71(b>Z;o4cvd_0uR;MNb%}z@^`CX8S?Eu%ci$^&bncf4&LITna-S6UvOjk3DR)Ocy&Kn-o)rg zEQU*{ypFO{cf3H!<|kMN)m)VPXwahTw4R_y>3T5hf7B8U_dsrU39=EJUt zd70LpXX-VLb+@DvjqlYgNv}&PALQJ;-g9&wo4AKl=r)eDpd1Ra-GyF|qRq6Xre_}X zq*&%F<|E%(0F_??+ACtg3QyK)?~7zLn2L}p_qLliL3P@~nh1S@ap3M=JINUKpRLt&7_v_6{5PvX zkqwh;5ZL5A5~DJvk^yJoAhPOpxVDtbVa@0aY2;kowfk6wWmhX=(-Jyj;zf!`uRNK+ zJE?tW^6%W|7K)jdf&+Qe759wh`vmAd6L;AmD2P+V#?#+QSzw0v;|Ti%cuGjf2#Mx8 zybYDAZaSEmu+uQ>-}TUd@Z(3eQSHZ^ zBWz+p3~qk53v!3_!GbmQ(SW^XdCAXzn^d+5y1NbV_IeblY8qdkNtzQ-B zk9~5I0-g;r2TIVqQ-ZVC+gs%b+AE0!6p~}7SmLL3GGgt(C9RMdX%0Lxlv{5Ur@Cv; zpe>CZp;qa=W{B~eaV`+a#37{ zEO=?x+^R@QB~EJDSewvM@VPU_u)tP69NbgYK13TGig;IZ5Mt4KqIdT))wo_Qhezleqq%_A5Jp9LaE*@7qEyA@ z(VXjd4ORt+S2O{X_g-PQnRtGBpDMYS@8iI^N$GCSkq4IKhp?;&mzAMo6IYYtIg3S4 zJ#e{{N;!k-Jw};M%Q?vVgD$x~9H08VlPts6EPuK%=K6?b7G+qnuE+1lNOnugqm%Zh zAHK0WJ-b4k-^;!17S6!l%iG|V`ErSkj~Wp3wBbA#HAH_sSoXz8LdUu)o|h5FqTkbI zUwy^RxwCdR)wkE_9ez#_$|Np%bPA8dG#qTN6sE2=@tMG?hxH~td2$<_GRE;;yLgD_ zG3(IB38g{j_Def_k+4X_Uys+n{@jPE#M3Uc=o)u1>$uRRs7#lmVG4r!87;euKuvQr zHDnDtC_?k2Ew&ZXW5(x-iQ-L$8Ao_Y&t0PoGnyT9%3${WHP!1PPC1sl)W+%tN$g`62K6xkMk~U4jEIx zO$dp|7$*^sm`ERA41Ap%k@<+&mabM}!JDaz-wAgw`ov?3>p2<_enTYS{^V2R6u!#} zi7_}yy;1IPd50}}AIW$cl~rO_v+SIWds53;YGFKP5_5Pz>k1j9>E(%$cRfkZdad05 zfv6~TGatoAw+E=`es@h$z>AtWi!o1gaj_;ip-^%YJ%hP*_HQKC_FVJDn9WO2K4npb29omD=p=fzXBAUyNmY4U}HG* z=lW`KbP2`PU6;#IIpS*SX^khDJ5zvhovV~Ppz)%U2;s95>dIN~RBGd7^aY#p>Za;20TfzO3AL zMjJFZ&mFkgbRhcZ(IP$W(MCddPGXuqj^d6UZW#H@qv@XFQEp&-oO?2YeiFIJ7o-y; z>APprtv+8}CHlR6uTFow@n>Npt-vp5=Ed(_TFcLK;;aG1QXP!?l!o!+hE2JBa`g6w z0fn!7I6L%fVJYn7f#gFh`9?AKC||p{Wn7Nk+if!AO;mK%qFORVztBvQ5o`_Vy(J`B zpAKf7;Rs8WRoh7zue?d}ADPSUeweouF$&Qh`xLj55ggAG}< z#*tQ(V%^f}Tr=l{y0qK=IYac8dYVU&BX?x=NCA>j{K3OoNM>onLT&ruj5{UrnF3o# zNvyw%Sa6UC@`vEGY z$Q6EO6?y`q)EeJR>Xg3xsN~w&Iuq?trS~DrPHrG=RPo+QyVog@>0X@byN~TS4nVZ% zt2M6z<{h)pSNknx=RrpOYaj7mrp?*Utu75MRsn&@mhvg!ZcQ_|0zNohd z|6Ao|kVMem=cj5nAPiRJr#^)5PTp_qW2FB$u)zPpR+#?r3)sn5p3Sh9&Bj1!^#Z7M z4DI@q6nA#xeaG9Y;C>cjWU^&}czr6@GZp|G7taggXP5A`;>}uOnH=Acm}Q%jnxWRh z0vD(_aD5B$2qq-{syJ9CWZMDwM;s{0bBNQav6-50maZPE^L451=Bg(n%m7hE`pXI` zG6E9VyXdAtSN#nGW;EF@qbva_d{96iinD^e{Q~CDYEsevMQcm+F}QzXE$^S zYCr7#?oZ4<>Mv-&^G?WZz8q`!aRFg(e&Gu556esPzr)TO~3vx;0HAtB+&9;BY4~GT-i{1V6%+`HJlhL3KP(*n?|70f_gn)5nj2D@|`7 zvK0i)mVqfUGPGOUCMw@60;ZtI7sC$~bn$>+F79wH*k%ovh4__Y`<3Oh0Yv!QYLB1V zmTCb2mzdP~p%!-q>7y|*n z(14_e8t&x(QH<_7kmR*jsSFs<7_{;D)W6~{2x8wlq=5U_T-{PrE3jO(ZexpWh0 z!_kDewph-E1AO(@1QenmC-JN+gVH2o4WWd<0fSN?JtPO{OA_c&v+3{SaQRE~y1-@qTv-2Wmy1^0oym#o{vHZ;jE{o!iZp zf-9@C9Ib;PuS@^}+mNy=wiWdXQqu4~X1wajm;d!|XQcReb*eaBNh6R;}XqUO|umw^&e2mkxQ5#vS2O|7uOamgpimD`L$ zLmm(H_AGaH;Q#1YcW0Fp>U*7zU#sL9uQhUWh1rFXVBbe)1@98Pa*Y@4L2(wS?#kNP zA%DX0T6DPn4-iVq)PK1eq)lBKJg4SeOLUYIRM%%eV{5qv%?urfx93uJ5BSFL6<~1!O^SjEndE({4QK{`sr5MY*uYU?W`h8e z*#rT!gfBOGwkLA}qE5^g)-8aj(Vzu`br>gKxUE=g5TgB#4Xj@QO{2lzimi6mxsZ@s z2LeJ)_c?k1=iOq}GcA#@<@#-5u;{bEiQ<|qYe8RG(9La+|A{x-x)bLBeL3j9Rsdqs zAk)4(Y3H%s@P5#6zmUX_I?(MP7*XpJwzAD_TL^+2>hhLD#etJ|E^m(}UY8jxg28N% z4F7&}z<<8;fSwgaMz{~m-vN0?zdg+dNb`9g)I(w3zh0T}A8#7a#qai(!QAAk@Y!~4 zZ<*h(Kd1uXB$w;Z6Of|xTkTalAHW@|%MoQ>Y3B7$fW*0q}Fk zc#~4@2SWKTTZgPZG@*Uo@(_`GCNu+9gX=llvfcn5rnn?vwFV|(i{yA%sc>#vq`iBA zsxSI*^MlR`cL4PWxE7ZgZ|iOiTI_XJ)}f{YK+piIvz6So-v0vcPawggd%Zx@30I)7 zpq961+k0WG(YwQ6&;UF4J&yw0;&zwwQ1I0K3eQ2mLl&I799%y~xJwA>51qEQ6D}F6 zxbO2z7h9iP@SMv2eQI7CQVMtd)PZn6tY~hN?mdV@6_30VrY&l*LS`6KUx7SW&i*H literal 0 HcmV?d00001 diff --git a/static/img/fr/2025-06-17-partitionnement-uuidv7-02.png b/static/img/fr/2025-06-17-partitionnement-uuidv7-02.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1b4e0e06c21da373b698d8b0018c38f43a9a24 GIT binary patch literal 26554 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

LAYdkEJ8>X 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 literal 0 HcmV?d00001 diff --git a/static/img/fr/2025-06-17-partitionnement-uuidv7-04.png b/static/img/fr/2025-06-17-partitionnement-uuidv7-04.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9da3129665dbb47545fd6c94fb5938251394b5 GIT binary patch literal 34545 zcmeFZbySsIxA3h5@_b0YO0NMy0!?Hw~Kx0qK%%5D-x5+H{G8bayG;(rofw z+xtAvxjpB7&ojP1zHf~09nTooA6vX~uC?Zx@tZUFrGg~RZL-@pZrs3;mJ)k?{X`0dk!DP{X6Kou+WEoRW)4k_DC^gnL-9F>!fx+RKKlY#Be z7o%>WA^+ozZW45cy+xHYF^entskx#trbKmUcu{3)QaMn#9hrXvB z=^p#vnf+Ods=vnTx~<=SJzNL`TNu?`HScBVzS~gMoA|gD9hbtaf*d(+>sV5@A5C)w z#6GAHoSrU5Zoe1BEkz^N9=Yb~bxNld&r>*NIh0eEzf0Cv;&$$lX!T3RS zeHzGKvlPwVD97>^bA--^Q1RKIuIG`8!1~7+s2>gwb7I?PrM#)*X&am2T={bMotlnX z*tRCIIO6Jj*Xq|o3y;q`OQ*i6s+q(-iXdzEDb>rc)Ly_ zu@B*d`b)S3dk6i((>S~{`q&TaZC}tzQrNv~xV}0s%ykel_=@U&ww_0q@Fh-7w7SyhwUweqNCOkf@f8VSBY-AHc+w>Ed4_pI7(y1wEu8~C8HFJLjk zJZ;wju>vDgm15I4Nk&Gt(J0sT0W;{iCq4<6iQI@+56?7oa7(-+0%H1oVjxp=TkrZz zjh>%p&Smke(*^r`TT$H(*|M^4w!gAEd2cSNBzd9BeJxabtVg~bciQc{*-aC`II`LP zBV{F8EB88?VkREys(}*vmR;lUASDwL4~FD*H5p z&oKoz%l*++z40Z#?@-J{W1ai@Y_m9uI?3~R5_{!SY3X3&`A*%6bNUH$uYgomg}fb^ zL+=x{5$j(HZUHj;SlClf&|O!OOw&K%-0?4jPqA1qG4P3eyr(A%R(0jaV$;y)Y4{6t z_1zqGVqVS8vrgk|B0oly6f24KJO(-Hwm7v+l8jBhKY^_07dKAng88@RM;UluO?wbm zVC#{V$6gzDykjUkykt~OZ&pEIn>(AUUo!-V>GM+@eiY{!JITWz;kQI?jTd83x-_qS z>+p$?yuP}$3WUH)Mpd<}a#sfjGh3CIsb60mWL(D<1e<1fj#=05wM${P`6vv6$xdFA z?X)pso_j8Qd8j0?_Q7v!!4Hpz|JJykcf+jr^<_W?zt85$j6;7=jW1>e8Va7!=?5Lh zL2-C5&$O5yd5sU`11{gf+qDKkaFS_D%lSL}Oq?#yRaXo!flkbhKMoXZra8}mk5c=!5w%l z`dv7}8qYTJS0qc|VaL2`F7=nk)3Bb$9rT>!W7C5Y4}zW-g2gjZi+<=q@QDzmRQ48C z8F;yZr)o;Ma;4kwX%4a%Mn7Dx0@EU?sO0&FXFApxAQnRDCv)yLvAE@o{$d!uMw7+~ z;V>Uk&Nou@++$!I%x<243nt8VVqoL$#Q}p=dU-y79WkaekYq~auR%c6RK9udI+FVP z{Rd%Y_KIHA-b=6!`2t8rLeSu$$5 z8QCv%&Q_bw{$v#_q%}&DFcLJu&4O}h@00NYLhP43V$=dCO_#@7BO0p^eR`oPNbr2A z@HL`eBIP~#&pxLF4xKExf&YEgAQKGIrDinCi_^WqT;e<2OM&XP7ni%S4_u$ zgPF-k{f)%cGMs(^zmHsFius{B!U!f2>LT>>l+wtB5KA#;L{aY5yz@_3h$wox49}TTZAA|Ia&Y!=J#$bcYY<^* z7{*2kpJygDOdJxi#0v&>?~zp)=$mx2S5@dXxP8xIv1;2m`*QdF!Y3AMK{?cogd0>n z!dH8dgFPtO9(JabnfP_03$$_M)=ihNx|L*0=xUmCgf{JMG$Nm}TR0p9h%_uz3`3*l zw>OW+o35U0Tm+(|xogw*fqg0jZwng>_gk|=zo42UYFw0rHb047xT$QXHydBPrp1H0 zi~VlXbxb=dYutic20VHyo>vbC&si2XWSN#Qh8+8GKdk@tb)?zMIq}KGs_->wVMixU z>B94%N7%vL#!qR27cg_Q*fL5Nn0cn98>u`G2hE6*bQ<^lP$h%ve{T8%Go)eU-98P9 z({pMf;;kqBau^V0{?i`jUweI2FT#Z5$*n404Yq{`g(H>C!WkYa1{WG)lUpWJzuo_W zMww(!wBV7zS2md`rMIHKei8T(T5X{a_PH6Grpqm`+QPIc@kwfY{ptq|n8&2oCd*Bi za^uAlpSjw{@<0*SGjA8F7ksh1cHSCC>E&p+qfmLB8gR?>X$D`sE!?TwZEUa8-QjTR zDce)no8ycT(T5QvFpW7al&P~lqV}~UERTS`I&Z}j7Q2P_QCd5*+|jV5^k__r+>)yc z#~f91%A?(i**Xt86-Bim_HbuB%Vk5y=dzdy^EHQ3DDO+4%Z}weebf5)I@AF^{w1t+Hx^GcciSdLy zC+Qd1tw%F>{I#F|i=G#P;V$dt*-_{Wu;1IAqbcBkcD{?^0C1ZjtcK zzM7|7F5$k3g{u(+Oarc){MU9JzPLB3rZ$V}taJMuIf_n=zV}Eq)~VbrSiT)GQ=viM z*U832N~cY-Cp*=G{H_2$@uUX#6ApFyG3$XBixqlAAIDM_g1CA$31{ji;4TZzK2h&K zMo@WQ*lB?+l}^uv=#ZrXf`VzxUjhBn`~l_KR`%yNn>p4wMeU5CK8kqSPFG<}{V@mI zIdscbd;)~EwjEiuGpD)_p9$~hi==j!x>-$ZpbXa;_{vh*tpse|$s{w}#EM{BXR#tM z^Fg((G{9iwr#;o;@_WvdIpB4&M;0N1-4%0hR@8P$h-prjYrW@%l5`?O70zbwr}F--7@5b-$)6(25$V&U#qf9RV%4Jich^nTjrP6bb6-&&8Wh?`gf~rYD?Ho#_Q|go<+TLO`n`L%w_dklu1%C0 zWv3O~X17=(Qy}6P(U4;0lZd2*)VwZ5Gs!&s*)}09c`o8hHnn+IFGR;!K&B7R zN9`&L;b#9?#&9myzgz@A-Vt^E+kFQb+3575&w41;myd?qphN;Caa>#)=IgkEhXZER zM!+mC38ZvmwqG?&$Pw{5A}%-(VP4&NEiQS!o|h2;Ycdjjr`c~Co6;|XhS9@!5Xh4^ zle8kUsdN(h{4Q81(#-2*1ZJYBYaThp@NL|oHmlp->#G^wLi=3(IH@tE9hB~30_*fx(x@2gKx=aiW~qz`FU8~B z{CW&Wtol?`kVa^$R;xbNYE#_$F!5kd`g9}tjJlZ-d*p$z#>ZY#w#qx0=yOUUW)1hr z*#?r@FGCf$ecCp`2NZXkVD?P>;{#ftcmnG`ZYR{yLALLvPTUZCfodTS+^?}GA67%3 zv(h$8CMZ0m5|o(6zmYkc-^DIe$2MpOCamd#MBGu(vvMZKDSX3Fwlb++iJ)%d_(P$M zs3X=eitqi5!G*N%W5M{oeqF18^!TTkZ;pMZuB z;3)F@d0nhX&;D<=D{$A%ZlX@0Bt~rA#Gt^pawvG|jXFUS0STV4KE62UANT!nmQTAZ zg*wFsbQ6!(5lc1FlmAHf3s~$DTJLq8MpcqhMbbEUYxy&7n2yvR4#^G@m8Pm?{tj9k ziGVNDwGcrd!va1;&)+)S3c#bH#KL12E6TXNNc{{q!zc}>$mVy9SM>o>*dJ zP~(#WO15Mqyy0X{fImE46z{%;;sThKaNr~{**h;jl0o}@7B5(~N2+vPk;vB?dFm5L z#z6z*p1V;qiu}PEV~H5hjZtnl_7@ zbj!(|bdy zq~IMpZ+wZqhg>FbDShCHl_Pg-&5?oy#f2WO{)!@u?zwlli%d*E> zW*}`*)r`HYN_t-4@8!V+EHTAonco99_2}k|7kt7H+o-VROMcN*fb=PGTH9%BAYPS{ zqTr~oT@EvHRge+_0g#kL6aN-~m_BghE3M#@?eICbO}O$_PdERYPJAuHV1_%5zjejH z5K=i;kSTc~mGg%PtW*$}8_QFq5;$G(+vH1Ne`pDe>bgCfVR>FF*CaKh4xf64RADwK zD8J{Q7b;K_7Icyk+zQ`Rf6)v~OqiuW%Yt=We)z+OWLOdOUzCx9`XK};r7xITk#~`A zHm0xuLN!&uMQG*#_WYRc$d@>qp2WxSS=h9=z}p|Hz*z-f!;VxiviXmf)sS;{Bk_j7 zg9e}&VZh-Zwd2rI9rLuj&2*uc?<)IS&->(<;yK7kReE6!WQD8imk`Wjul zV`Vkt=!f{M0_2ls%yepY&oq_3h5e_8SkUQAJUF2Wnbekhp0Uj28~B^rito7CC+~D zwVN@F+?s(AIP%vP-ELDO>tlRQ0ZuzpLb1zoi>7iJ2KAddtDi2b9KR-h9?N+^h4aLE z&fL2+Qga&fep9odgZjMjip-l^cPWA&t!Lr;Z1#JM>$>c_r_7j3tPRO63Mg2WD9C$e z?&(;hL>|j~&KJc@PgZjbTSz=8KkctU?YV682qoIh+4bSr1Fx@!LcpX@xr&K1m@eM3HO zopqGTst&rfB!-L z%$kc|0WR3&Js03iVbqZ4SQU_a%~-K(HqKU`yLlkPFjg3RG{QKhwDI=n%PsdQnpHg8 zhvzRW1q}&JEH~ba!!vA-zSb%YSHT8Fk?dYzW6Q*W=_RJV? z4R``CW{@LiH@&=nw|2RjIJ*($la|+ry}r= zu0Le6U#ei#c^(93vYC?2pRdB;N98(O@$5_!r$v=ksmFEs`GR$4_s$)oer69PeLcM< zoL`9R<8f(ggm>WUwd_qljDdE-`X@?ynI;k^ExX+^>guLs^W{n-iSpSuopg7h?(8-1 zw;hsqQ5Nm8b0;2aJu_Y;J|E)nIPNX$SrL{!Ec1kGwK5=w^$D~%*h zGqD+)kU+1WAB3%QH$gm;P$jLx%fkhAe2rFaCoCi$p@ATbZZ?Qv36248+=%_JAFc%q zd?t^Dup%}ZBHdo&0;P!+F@R0eLO{Dj{IKOm2WMV7G6m*Or34SCc8 zCc$eDMxd1F`9uO3{(bVlrSb2%@$Z%Lf2Arg-}5z^sxXI57z9oN2Z&!*18Jg8d!EdS z-nplT^gw_{ERO*iaX&O+;g=DqjI=MESm#4s-_}TDW(K4_eIH)o(t>p5CXq?UlGM8t znH$AAK%=5ccAfzZ`tIT<1K)*u!0YHg?jq_-_lAyL)3zQw5H|8ka`JF}806TV=$P*P zerQbWKTmJ{X}SFm7T|yX0_rV~K>~Fe z(j@)=>`_s4l2adE_?g%{XhKWdwvsK29waA-Y(BEC{(-IqUIBaV0A%GRNljA+DR|Gf z%BPRU^@O_}fM`bb>Rf&c{0KY}6VWDXds=!YhyIWK2`O}m88i$$5G5qs2HC~5^~pBW zZ(*cd(0;)aZj+}!2a5HCk;wz>708S7d9U-y#K%U-iy(DmHf`IAV|CEWo3T!b74h6(`>t;Q${mHOccx#Tv1 z5d04~@I3qM*?%s*BUC8iopZ^4YMm3OS_V?!kM2@W+cY(xN`7kJr2p$-A^-AW9V4HW ztn$)e$>u~^AmkFTsqED}x`E8mUpWNgLbgCMy6h=31!W2Hj&n&SLLg;NR%6jCe0|a0 zgVEoEll%iy#d{mfNia9ZnEsI7e=`NXi`o7f07>2+Wd0y2y`Mi+oJiv%!lp<4(dOP_ zq%hC5)pq50y1AzW#U2=^=@%G~Hy}G{-gpd1gsO1fIleQ`Z$SibkWZ7feP>ax@RNW7 zuVF9Ev*Edsyu*mQi$IFAvb(#@_s>syf#*pET`v}xs*{zkd;l>W;eMD8?48D)VKcf_ zj`~^0O3tb^X9#q2{vp);j>gDMpia`jPzk)^D#mlURT3xNX_8lv1rB~Y?~FY-?9IbLK<`&hetj(qC=e3 zb7asfy?D?o8CZhE7oQufDn>3~6KJ=dg^Z@QAGVXiI{71~Bt7${s;w)nL{(3#jYhmK zCf-a}-tqLZwwYz*nPBqF8|5VDnYY=7Mp5xkq;y~E>6J2)T5w*f2yeZi;+^cANS>C$ zAfNP<7`YndWcwxSuI1c92|G0YK6Mbl81;T_`)sScf2;WxUg~FP!RQ1?Y9(JE?{!d3 z(*#m*4nHwXcg-!V9Mj~w3@0U2AY|(0E2!J4g>8J!=7uWAh z&hB~an5FX1GAgE;=&Wun#pu_3=5A0i@=k#|^bFU`+?&}U7j_GAN@~ciw47gvH>trY ztTd+5G8z_Ip40u+_*sc;`wQWAQB)w1z!*V_|&62cR8oJQlV6|OH%(6O` zb;7NXVtq}r4}TJo0WDX|&{myNBAc2%JuZ)Pve}U*Y?mwT(@9o$E)d+jx!G^Cx&6{b zDb^mF-}5Xi=;))JQlS>*Ch6F~w-Pt2?suh1g-HKX6jGvVzMT#q{Lr{;$nG|;!qi~3 zC@~KE5Yi(LHJmMVAly`_tlaz@LvE!xd=hIT$$o3M*dt;^$|=JpGzFA!@Ox!urJH_r|&E^JVu`QDErcR_o6X$JLP{(V{vw7Aqpwif5z(p z@Rz}?{h8qVW6;BOu7giZ7&n3X2;`cbu5-50()U5jYJxcQJRU1I?XL~U??J|n{&_st zVtOxQ8%8O}uh}VRHFb?REX~;lAcmoy=TY1?SiD?&^*=*cq3byb>FYKiQD5-GM8%xh zsYo)%eADZ9bPj|D{^OuR`HYGY`Rwv=cpI^rVdHi79}J6m1((W>!CSK@Kr3ZeUX zzrzfoY6;M4PI`f4yog80RM z9t)z>l?!H2XvGUZbYy&KD%CGLg1-xdPNudj{4q%Zz;v`Wn7yTKG3YY6=9vAruLj{* z9G?+iztq)Ti6?;5nEv!CI~n_le)A21>x%or z2*iA*&9cK;SU&t8&waYO(0E~GiEsym!WK}3@JW;WEqx}eh}sf7W08M+{cjnt(7uE( zxcq9t*aoOX^70R4xCa7omixvbDGYop5}*D!TkOLMY8Mg3ll~gczY7HXetCk7Q#Xdh zzWC>$Ab*(EfIn+m&pufFPx1YKboPdTAJ|XQ8vxeuit%L1viPj8z~0oVq45d;BvT-r zY6PgH5)h-3Cjyx|5QC0*t0u4;7eTz>)*Y!<^Cc}}-1(6eKk!Y9)>V(|!M-d9^r&IdtJ5$C4Nav?AAA!*5XuOtnjo7%V+aN%gOpwMW zHzAM5=`S;$0<~gY9x#=s4FVwr&bxDQLbQ9AbFjqI7IBUOdSMNCU|f9YIcwpGTbXGw zY>qYUu`Yyn{D4T@v!YcD11F|>dFP=Z z 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 N|5RDF3Thnm{{Zu{orwSd literal 0 HcmV?d00001 diff --git a/static/img/fr/2025-06-17-partitionnement-uuidv7-05.png b/static/img/fr/2025-06-17-partitionnement-uuidv7-05.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc6389f3d09950eb60e9a326e847bae69539d8a GIT binary patch literal 22423 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 rY?*^A^SZ>qhN<||Yx@A+$VvYO&QC=( literal 0 HcmV?d00001 From e0d403c00c2b32295bc75d5b565b7d4d1f463787 Mon Sep 17 00:00:00 2001 From: Florent Jardin Date: Tue, 17 Jun 2025 10:56:26 +0200 Subject: [PATCH 2/2] Update content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md co-authored with @Krysztophe --- ...025-06-17-le-partitionnement-par-uuidv7.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md b/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md index 4764cb3f..cf4158cd 100644 --- a/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md +++ b/content/fr/posts/2025/2025-06-17-le-partitionnement-par-uuidv7.md @@ -2,7 +2,7 @@ title: "Le partitionnement par UUID v7" categories: [postgresql] tags: [developpement] -date: "2025-06-17 09:00:00 +0200" +date: "2025-06-17 10:45:00 +0200" --- Au dernier PG Day 2025, j’ai pris la parole pour présenter une méthode de @@ -162,12 +162,12 @@ données UUID de trois nouvelles versions (6, 7 et 8). Un UUID (ou _Universally Unique IDentifier_) est une donnée encodée sur 16 octets, garantissant une unicité à travers le temps (son heure de génération) et l’espace (son serveur de génération). Les UUID sont redoutables dans un contexte de systèmes distribués -où chaque participant peut créer de la donnée (une ligne) qui n’entre pas en -collision avec aucune autre du système. +où chaque participant peut créer de la donnée (une ligne) sans risque de collision +avec une autre donnée. [4]: https://www.rfc-editor.org/rfc/rfc9562 -La structure d’un UUID se voit doté d’un _timestamp UNIX_ d’une précision à la +La structure d’un UUID v7 se voit doté d’un _timestamp UNIX_ d’une précision à la milliseconde, encodé dans les 48 premiers bits de sa valeur. Cette version est un compromis entre la randomicité et la praticité. Les bénéfices vous paraîtront limpides à l’issue de cet article. @@ -176,10 +176,11 @@ limpides à l’issue de cet article. La version 7 était unanimement attendue, car elle apporte une réponse bien plus appropriée pour l’indexation dans les bases de données, offrant à la fois une -unicité et une sortabilité pour les champs. De plus, de par cet accroissement -monotone des UUID au fil du temps, la gestion interne d’un index B-Tree se voit -naturellement facilitée avec un équilibrage moins fréquent et une prédictibilité -dans ses performances. +unicité et une sortabilité pour les champs. Auparavant, l’indexation sur une +donnée UUID v4 était désastreuse pour le cache et la fragmentation. Avec cet +accroissement monotone des UUID au fil du temps, la gestion interne d’un index +B-Tree se voit naturellement facilitée avec un équilibrage moins fréquent et une +prédictibilité dans ses performances. Une [publication récente][5] annonçait des gains significatifs entre la version 4 et la version 7, sur les insertions, les consultations par index ainsi que sur @@ -225,11 +226,11 @@ Additionally, an alias uuidv4() is added for the existing gen_random_uuid() SQL function to maintain consistency. ``` -Vous me voyez venir ? À l’aide de cette nouvelle RFC, il devient possible de -disposer d’une ligne dont sa colonne d’identité contient sa date de sa création ! -Le tout sans surcoût pour le stockage, car chaque ligne consommera 16 octets -pour sa colonne de clé primaire, autant qu’un `bigint` (8 octets) et un -`timestamp` (8 octets) réunis ! +Vous me voyez venir ? À l’aide de cette nouvelle RFC, il devient possible de +disposer d’une colonne d’identité contenant une valeur temporelle et qui devient +_de facto_, une candidate idéale pour la clé de partitionnement. Le tout sans +surcoût pour le stockage, car chaque champ UUID consommera 16 octets, autant +qu’un `bigint` (8 octets) et un `timestamp` (8 octets) réunis ! ![](/img/fr/2025-06-partitionnement-uuidv7-05.png) @@ -239,7 +240,7 @@ pour sa colonne de clé primaire, autant qu’un `bigint` (8 octets) et un L’idée originale me vient d’un [article][10] de Daniel Vérité, lu l’été dernier, alors même que la RFC venait de sortir, mais que le patch dans PostgreSQL était -bloqué par la période de gel pour la sortie de la version 17. Il était question +bloqué par la période de gel avant la sortie de la version 17. Il était question de pouvoir implémenter ses propres méthodes en PL/pgSQL sur les versions en vigueur, sans attendre la version 18. @@ -284,9 +285,9 @@ $$ LANGUAGE sql stable strict parallel safe; ``` Grâce à cette fonction, il est possible d’obtenir les bornes d’une partition en -ne conservant que la donnée temporelle d’un UUID et remplissant le reste par des -zéros (et quelques bits fixes). Pour la table `foo`, on se retrouve dès lors avec -la partition qui respecte les valeurs comprises entre juin et juillet. +ne conservant que la donnée temporelle d’un UUID et en remplissant le reste par +des zéros (et quelques bits fixes). Pour la table `foo`, on se retrouve dès lors +avec la partition qui respecte les valeurs comprises entre juin et juillet. ```text Partitioned table "public.foo" @@ -380,10 +381,9 @@ SELECT * FROM partman.partition_data_time( ## Le mot de la fin Les articles que j’ai énoncés précédemment me conforte dans l’idée que le type -UUID dans sa version 7 repousse les limites connus de PostgreSQL, notamment pour -ce cas d’usage du partitionnement par date. +UUID dans sa version 7 est une belle opportunité pour l’adoption de PostgreSQL, +notamment pour ce cas d’usage du partitionnement par date. L’accueil que cette rapide présentation a reçu m’a fait également l’effet d’un -appel d’air par les utilisateurices de PostgreSQL, voyant dans l’UUID un moyen -de pousser les limites du moteur de base de données relationnel et open-source -le plus avancé au monde. +appel d’air par l’audience, voyant dans l’UUID un moyen de pousser les limites +du moteur de base de données relationnel et open-source le plus avancé au monde.