diff --git a/R/getPSNUs.R b/R/getPSNUs.R index 0184de40..bd293f79 100644 --- a/R/getPSNUs.R +++ b/R/getPSNUs.R @@ -25,7 +25,8 @@ getValidOrgUnits <- function(cop_year = NULL) { switch(as.character(cop_year), "2023" = valid_OrgUnits, - "2024" = valid_OrgUnits_2024) + "2024" = valid_OrgUnits_2024, + "2025" = valid_OrgUnits_2025) } diff --git a/R/packageSetup.R b/R/packageSetup.R index 6f389a09..059e0c65 100644 --- a/R/packageSetup.R +++ b/R/packageSetup.R @@ -17,12 +17,12 @@ getCurrentCOPYear <- function() { datapackrSupports <- function() { tibble::tribble( ~tools, ~yrs, ~seasons, - "Data Pack", c(2023, 2024), c("COP", "OPU"), + "Data Pack", c(2023, 2024, 2025), c("COP", "OPU"), "OPU Data Pack", c(2023), c("OPU", "COP"), - "Data Pack Template", c(2023, 2024), c("COP", "OPU"), + "Data Pack Template", c(2023, 2024, 2025), c("COP", "OPU"), "OPU Data Pack Template", c(2023), c("OPU", "COP"), - "PSNUxIM", c(2023, 2024), c("COP", "OPU"), - "PSNUxIM Template", c(2024), c("COP", "OPU")) + "PSNUxIM", c(2023, 2024, 2025), c("COP", "OPU"), + "PSNUxIM Template", c(2024, 2025), c("COP", "OPU")) } @@ -138,18 +138,20 @@ skip_tabs <- function(tool = "Data Pack", cop_year) { switch(as.character(cop_year), "2023" = c("Home", "Spectrum", "Year 2"), "2024" = c("Home", "Spectrum", "Year 2"), + "2025" = c("Home", "Spectrum", "Year 2"), NA_character_) skip$unpack <- switch(as.character(cop_year), "2023" = c("Home", "Spectrum", "KP Validation"), "2024" = c("Home", "Spectrum", "KP Validation"), + "2025" = c("Home", "Spectrum", "KP Validation"), NA_character_) skip$schema <- skip$pack[skip$pack %in% skip$unpack] } else if (tool %in% c("OPU Data Pack Template", "OPU Data Pack", "PSNUxIM", "PSNUxIM Template") && - cop_year %in% c(2023, 2024)) { + cop_year %in% c(2023, 2024, 2025)) { skip$pack <- c("Home") skip$unpack <- c("Home") skip$schema <- c("Home") @@ -180,7 +182,7 @@ headerRow <- function(tool, cop_year) { rm(params, p) #Currently all tools use row 14 as the header. - if (cop_year %in% c(2023, 2024)) { + if (cop_year %in% c(2023, 2024, 2025)) { if (tool %in% datapackrSupports()$tools) { return(14) } else { @@ -225,12 +227,14 @@ pick_schema <- function(cop_year, tool) { schema <- switch(as.character(cop_year), "2023" = cop23_data_pack_schema, "2024" = cop24_data_pack_schema, + "2025" = cop25_data_pack_schema, stop("Data Pack schema not available for the COP year provided.")) } else if (tool %in% c("PSNUxIM", "PSNUxIM Template")) { schema <- switch(as.character(cop_year), "2023" = cop23_psnuxim_schema, "2024" = cop24_psnuxim_schema, + "2025" = cop25_psnuxim_schema, stop("PSNUxIM schema not available for the COP year provided.")) } else { stop("No schema could be found for the combination of tool and COP year provided.") @@ -273,6 +277,7 @@ pick_template_path <- function(cop_year, tool) { template_filename <- switch(as.character(cop_year), "2023" = "COP23_Data_Pack_Template.xlsx", "2024" = "COP24_Data_Pack_Template.xlsx", + "2025" = "COP25_Data_Pack_Template.xlsx", NULL) } diff --git a/R/unPackSchema.R b/R/unPackSchema.R index 10bb1e65..58e45035 100644 --- a/R/unPackSchema.R +++ b/R/unPackSchema.R @@ -398,7 +398,7 @@ unPackSchema <- function(template_path = NULL, # rm(params, p) if (tool %in% c("OPU Data Pack Template", "OPU Data Pack", "PSNUxIM", "PSNUxIM Template") - && cop_year %in% c(2023, 2024)) { + && cop_year %in% c(2023, 2024, 2025)) { include_blank_cells <- TRUE } else { include_blank_cells <- FALSE diff --git a/data-raw/COP25/cop25_metadata_organisationUnits.csv b/data-raw/COP25/cop25_metadata_organisationUnits.csv new file mode 100644 index 00000000..4daefe6b --- /dev/null +++ b/data-raw/COP25/cop25_metadata_organisationUnits.csv @@ -0,0 +1,2081 @@ +"orgUnit" +"uXwFHXCPYgj" +"Yhf4p9zEkYl" +"P82LOpqd4Bx" +"MTPoa0xZGqK" +"wr3nbmlplbm" +"Xanlu770shV" +"BShSKxvydam" +"NwyhkyXDJZa" +"KqlPTaq3EHe" +"oMSiLpHxx8r" +"bmIyiALRBEZ" +"lyhdFErVxgP" +"E5ndVNHtINe" +"YDU3IQ0Za5B" +"PSRFSnqYtBL" +"OpYCtzXa1W2" +"xlcgMVfh8m0" +"og1iVZBQl9a" +"FMBYVYHGzIg" +"KCI3Lu4vvFx" +"bSwiBL5Y4SW" +"gGqaAXuUGpb" +"p5JLtcOw9iv" +"iY69BUSqcnC" +"TcLMNlsgbcz" +"qUdeJw9Q0Vk" +"YmeyoDakwFX" +"gchw5PMi4N2" +"e9Ze74PEe99" +"v3v0gu2Gtol" +"saOJtBcENzM" +"oGXMBBGIRJl" +"KrgFtpUJ20E" +"yNcvm7JYBfi" +"Uz8LWtC0vYF" +"w2kp2bfOmNv" +"h1CepDrLWib" +"nszh0FzynAQ" +"TnDQJQtNVCK" +"ML9AwCIGjAx" +"VB7am4futjm" +"YksWHI1yLuv" +"y8A4MNQse4l" +"dEkUfWWZQ61" +"m9qc7MnDafM" +"GgzMAsHUgHC" +"xLLFT8x1CF5" +"LEUjALXInGD" +"YUdVS82TqXZ" +"gcVhTsJOcEn" +"XvmMVfsPylt" +"wAZig6EhE1E" +"GfzAYfZqc5T" +"iucTbllXkD9" +"Th7r3A55KSv" +"uVjOumOk6WM" +"ROXWvjoqBC7" +"WYx3txQzS4e" +"Sj1YMJNo9Tt" +"LHbuCRhv3Uf" +"XS6tMpC23XC" +"hNzRCFFUg9X" +"bxUZV5dPQIk" +"EFTH3ILZG8X" +"u8jkr79hQtx" +"p7hBFqXXjdJ" +"uJ2w0t9mjYS" +"yDmdrNI3wNW" +"xkPoe5mhHE5" +"IaFLxtEwIwk" +"KtMNtCHNQDJ" +"jTLYjaje1D9" +"MTRiZG58YEx" +"NpJ9e4IC0lg" +"HxXMyMSODnm" +"zKL9YsdE5yw" +"hsuzPeRTaYP" +"Jm3YTCERxvX" +"eky41asIrS2" +"CDGPst7p3vc" +"rRzjGlJ9bIa" +"stClxHNn4NP" +"InA1abMDsoS" +"RKoVudgb05Y" +"S5gB12QIKaZ" +"utFDiGSMhJh" +"n3bglh4xzbT" +"WXYs4NL2Too" +"s2Gl84OwyFx" +"dZOMJIWZeKq" +"PeOHqAwdtez" +"Bxj8OdeX0dz" +"WuxG6jzaypt" +"dc257jG8Oht" +"acredb4Ssxw" +"IshNzxMaqJ5" +"hLfrQeakf6m" +"Ku9DDrwe3jd" +"yTRqzhs7P0E" +"cePFfV64QYe" +"zhJINyURZ5Y" +"GWmwe76VBBu" +"WSl5y9jxCpC" +"HNIq3HgYY3F" +"xb1hEh9skqx" +"WPOeh5Zpqy5" +"mt5d3w7GEah" +"ix3BmIlJK7c" +"cMQbmuMTkVZ" +"wYpFP7C5WNw" +"OFG2esGMEMF" +"uCA3AwqHnY0" +"oignlYzEi5r" +"muK6VX2QYBQ" +"c7w0pI9yo6A" +"jWzQZswT4Gz" +"UUkzQMuUHco" +"C0mMiqtsZjA" +"MlCWU07XlXA" +"KPZ3nbdyWlb" +"lI74aisZtvk" +"xELDpBDTXO7" +"cEigJPS2qGf" +"j98NVMiOHmp" +"GzUZeQXOAuN" +"rTB0ZdLkHAL" +"Jy91UHo35rl" +"fy8hntNu4XW" +"ONNedFeT0t5" +"VMJjIXb4quQ" +"U6LWGbNsgUi" +"JKLQ1sXDGUC" +"CYTuJgNPHsJ" +"VTcHS7Hc0FY" +"k0ZIWufl2En" +"yj7bCMh2usG" +"YPV5uwJ9Z1G" +"u3XjeRYuZFP" +"xcyOmlkzehn" +"uXqGfBx5A67" +"BRTZAN5g30y" +"uV90pzWiOHS" +"ohO6XukuNlw" +"fdnrXq8zigX" +"WPps5VRQC7E" +"XBwAExKzO0i" +"e29Q8LK8uu2" +"ue2o8vzURhp" +"NCxdafLedh7" +"qt5vU7iUM7L" +"XTP3dIajxWq" +"eDHxacE9T7E" +"ysugn9jto4y" +"fRbw8f7aVg5" +"VCmH2XUecHY" +"Ha4nPdYfKxg" +"cnScuM7LsCx" +"xhGTltuT6Yy" +"GXEx43FvOhx" +"xScElOj3oni" +"y3jDZX9FvIS" +"ZgqxntcONNO" +"ouGoIHqqGue" +"FOyHHNSbPKB" +"CVIcxp3JNnM" +"VTIyrFtDOkF" +"hp3xhTGG0FI" +"q23sbJ4Y4vQ" +"QJmd4JZKJS2" +"kQd4UhfetWA" +"yExDdlNRsvR" +"y6e92EVPbXK" +"GsQj5IBDt7e" +"BFaxSeylBmn" +"goGf88ZPcoT" +"blTLRJieLeu" +"L1M4wMpKo9E" +"dHkSkjzfQuW" +"iyLHYMN1IiR" +"OGNgjNnBQ8g" +"gR8ojiMv1Ck" +"DAUOtdkiuKE" +"pzbzQqLOuYC" +"hLgUPsOXYyb" +"v8ZK2QzZiUC" +"IajSq3YxmKs" +"vy36W9mPMIQ" +"lpUD20nqhzM" +"q936IdBODmW" +"e0UTcNFBD6v" +"JzSTN7nvVoX" +"RHmczoA5MC8" +"z0l8revlfka" +"zKVgrmJ1Pme" +"oYANdL9Xdow" +"MNBcfAJi2ip" +"pbbTuc9v0bs" +"trexqbBH1Dl" +"mQBGqIYm7ig" +"YTwrMBeqYlQ" +"b7Rr10snoOt" +"wZQDWqRYoQk" +"N8BuEIvWgtw" +"NRHYbSoUS8b" +"HD1hHNLJC2d" +"FTZW4CU6rA9" +"IFJNkC3Xp9F" +"kJHwmZQLSct" +"nlBB4kuHNKj" +"KdKKLkmhK5H" +"aUY4h0DNimo" +"qoAgREJPyid" +"GxoEtnPPR03" +"iMQoBbFyS0r" +"NRz70a7NU2v" +"MqASvZMcAmS" +"t0pAsbS3vra" +"EVXRtnGJcKP" +"NIMSlZOIDOo" +"pvyy2OBsYcJ" +"C5f50Pl1O0c" +"k5RscQIV4Wu" +"iMpRbiRQgi6" +"uJyZPYtfxbp" +"TXXLzonzdpk" +"lFQMdTZ5kqU" +"DvpvR1U5Zmi" +"l5W6z6nyRiZ" +"yR71qTBN7Ow" +"JACTxrX4F1d" +"UD63JPcN0Cg" +"j8R6dmZTWf3" +"GId4PpBC9Es" +"wosiKYVBAIZ" +"yDadF4z1Cpi" +"jAW4qOepbSh" +"yZ0U5wuyirV" +"GQwgc0hZi7S" +"FFNNUbFAyUG" +"D6WUHdpPajP" +"Hkcm28eFvGk" +"JbQhzAzCXIy" +"JMyTU1Qu3Y8" +"jJAOtXDfY0u" +"bCiBEzaJENQ" +"x3YPzC51dwW" +"N7QAPGSaODP" +"ojrg5aEBR2J" +"EXVC4bNtv84" +"K0gyOPYnjuc" +"w5NMe34EjPN" +"dx8F2KUaI1e" +"aUTsSmqqu9O" +"AtLMF3jRYgO" +"oK0gC85xx2f" +"Gfvf0UwqpJ6" +"Y0PDkv3IkGS" +"Ph9OdsX4oye" +"iiPgv10L3fG" +"EnrN6IbDH0q" +"m4hsNX3VTKP" +"ouvLM5iBp2U" +"uum3VZlFaKv" +"VmeP98Y7Ob0" +"xWtNXMJvZls" +"seRbZf8kSR9" +"CC1SGssRL7b" +"Xg6Lgk1bCt0" +"zEN1Qk6zHzg" +"hyRzs0vha4A" +"dlKygFFZdv3" +"PgWQBDixpW6" +"Ry4fZiNgHqs" +"qF6xjc6BeFi" +"CQNFlCBAutz" +"D4iBLytNjaV" +"EQv7b8QWyD6" +"wNWzpA99YfH" +"dndrrL0zj7f" +"Afx3d2MkpEG" +"XZaPAzso7Hf" +"Ck8tTF5hVgt" +"bfjeJlr9a0H" +"gsQNaHt0oUW" +"ud2hyDehnZs" +"darR7PaS1At" +"Add1ZScBYek" +"JTkbBDZyhOA" +"uhdeYtg5mzU" +"Ld8rYL15Rxt" +"y7mG2j0VDi1" +"hfoIg3pAHCB" +"yEDQW7ekVrO" +"uxxbWIq97Ob" +"GeLP2HBm78g" +"QAvyrYDx54a" +"k0YgiUwf6v2" +"Ycl4U8e7gy2" +"TfWaIMM4Or1" +"krxtjsxfpUM" +"TAeSRbcfizp" +"AVpB25vT5Va" +"droKSgOrnNg" +"poICGihuMn2" +"HBG2aW5WFUZ" +"jeEaLuopQhp" +"ALkCIOm23HS" +"LQFBaLwCy0S" +"Pc7v62OOxzU" +"p8oY0egE7A8" +"HIFez3BKaJG" +"LZkTokfkhxX" +"RdMbpIwSbfT" +"F19P9o1KpBW" +"UI20ydTD056" +"sjPmRIBtDbF" +"JGQrQP1bMTW" +"C8A8zT0EJfA" +"WFlLUTZZSJh" +"LGTnoQzGzQ5" +"lLEe1QYmzQ7" +"beULclqkjPT" +"tDvbrijoQgs" +"Vig0g2MXh4O" +"eruH4f7Y31D" +"pJpwznQuqbB" +"E7wKdHjzUc4" +"z6HL5QkdXaU" +"X0CYKb13qOd" +"mj8vc80DZnW" +"a5jLbEaqXQH" +"iBIl1QevIrG" +"KtqjtVhTZdP" +"abCVuLIqXPM" +"BJwJiJ0aein" +"orZLnojDCbO" +"jf7kv5ZPbM2" +"FjfRLfEnFtm" +"mLfokzGSDJb" +"pCODWiMvHX4" +"Y6quIOmXjd1" +"G5QPlet452j" +"PgK6EwJ52Ji" +"Ob5urm65M2B" +"b224qDuKZu2" +"YaYsGFSpnDC" +"sDKxk72Fmkh" +"RxH0BNkxRaX" +"ItLFN5k82Cs" +"HklkyYEG7Gv" +"JlGVapzhvz3" +"mYTgK9zSnar" +"kloe3J4FH0k" +"OWrW8UtHRQf" +"WiUKOLzUkaA" +"Fr3D8f0yzfl" +"rgm7RhocZpq" +"G4NIzQIgqEN" +"SW7oN27TfFI" +"bkHaWQ9ql5h" +"xK3CIen1bO2" +"QN3BvovM7r2" +"UJCsyLymXFO" +"lvBafzpWL2E" +"jURa1M48QVu" +"zK46I63dZ4B" +"C3w5Zx7JbXB" +"MF8ta3fUbmN" +"bjZdLKdbZmp" +"XMzW01Cc0Jh" +"NTMdRJGF3jX" +"Mv3jjVvanr3" +"G3SRKJCdORI" +"dsGnuIzovnx" +"BCRi7hI63oH" +"CopYolVldGf" +"Vr556FJGh0j" +"miS6GTGi4YI" +"S8KcUXNL7Ck" +"Qlf0RnMkHpH" +"mLltKqL0iLn" +"tL1TB4XAoVG" +"bE3mUVW1Jbv" +"j6Qi73xAblL" +"YF0bhqDhCGa" +"CU0xscbwfvQ" +"pWGwDVst1fR" +"WbX2pgzelj2" +"R2RTiizYthV" +"F7dN2qWcG5d" +"q7sdgghFvzp" +"RrWQ1zYSkKE" +"y4gXCdiEYie" +"pLyKEXBkfp1" +"y1SnLJWw04y" +"ZaAxU5KQtON" +"XqLMbqdrn83" +"ImgdZHUP1LC" +"rZrQYGDvmHx" +"DVjBzeE1Wnx" +"pKrD6iFu7Uv" +"axtIYx3am08" +"vgocGyTstt8" +"tPoQHIQ2wOc" +"NYGOUPHfC6Q" +"WYRRKUrSW1K" +"RFwjI6w3k2V" +"xpMGCrOahFz" +"OJLOc7nEo9m" +"Pjb0S0yJV1C" +"jDJlgTLEoVb" +"VpeKn3k8ZFl" +"IWakTQ7RaEL" +"OSgOSSNPWtm" +"TWFsR2N6XX8" +"zoY1bvpnFbk" +"znJyBbN8KeC" +"hO8hsJUqKGe" +"PeOA630LbDC" +"Azbu5IAIHwb" +"KBnqh7xclTV" +"RLiB1H3W2jo" +"K0e8ee3Roup" +"IAQ4KIZhY0d" +"FXlLMfnEl8N" +"lYRkXHFoC7F" +"T8KIdEwLK43" +"Fb2QovwGdDf" +"Hrw5HMApczH" +"xF5pzBizC6m" +"GoRO2WASe9c" +"PqP5M2imwae" +"nRfpPEjB7Jv" +"HdHaKQq4v6w" +"sViIDyYJU1L" +"kG0V8dW9jZV" +"q3nSLobra2R" +"OZObXGHtu3B" +"TEKi4PpWVzG" +"I6Jlu7gKhCR" +"oApJTe5LKfA" +"Il1HDhslWDZ" +"XTlGfFHRQcD" +"jCyTwXH0CjA" +"ygWtE0W9XjU" +"pQEJHFV5roY" +"S2qexRoiisk" +"vbfZURqJ6C5" +"PkH3Bxq17V0" +"greDEQO48AW" +"Nlztxu88QKz" +"ZpWSJz0eKWI" +"iZ3U5wMw10I" +"PfLsiT4rWd4" +"B6F6CmpxHEp" +"EILIkQjEKV0" +"Ou49kIXAhsb" +"HQ1qCAseEvP" +"lwQmIxQvqlG" +"r0zEP3D4XZ2" +"BsxtuG50r2p" +"IERlC6NY3db" +"ZHz8Tdhgoo3" +"X5sWbCPe0GR" +"ggUNOpRzRR1" +"agMSsny7deh" +"TLhvHOx1oKR" +"tTqKLgv8OdJ" +"e5u7WFHySu6" +"WJIfSxkEjaO" +"QW4663pYaVx" +"JYyjKhP9nMN" +"TP7ZQdMs6dV" +"a0hRX02EGEt" +"DQ8tCtOLdds" +"eDe6RsT59eO" +"EWzTbt68cWm" +"seR8vaGNnZQ" +"H32roWMdBIF" +"HwqLZcHHlmQ" +"dYOLCRtBDyy" +"ZKCCkuqj89g" +"Ml7XhDDDSxr" +"b3oj7tltF3b" +"hmiqnsA1RHG" +"kd4zgxV7h42" +"PBd3TB3n1Df" +"NjC6gOyJzAv" +"P9eDzcrJECL" +"js5yG6RM6TD" +"YxBHH643Dqw" +"wwMaXO40nKG" +"zm5mC7bHlfw" +"aeMCpJ3cC3w" +"IIWUbCKztLZ" +"EaCSG0WmNZV" +"lULpsimnkxA" +"xnp6C0QwBUj" +"hKlzgWdCBWT" +"StfasNs5M7Z" +"zijtsprtA7O" +"tHJtKMOMgpd" +"c6CzaBpBn1g" +"grhcb3NRDtA" +"u380fHid3Gr" +"ULJUl7LFjTK" +"Cy5QjJ7IuOT" +"UcdFn6SOiS1" +"BQPR0UCqFyz" +"UQu4xUTufWE" +"X8eXmYHQXAB" +"WoBCQgvIkTL" +"Oz0qJ8kNbKx" +"ho0Fg1MrqMi" +"ZJ1ngXCyNVm" +"aXdQ97wSK7F" +"UsUtCapznDy" +"Bf7lGUMLg7A" +"PpTLwWlbuH7" +"Y92sgHgSEqh" +"MloXYCFhAHJ" +"pM2rGS6q9df" +"xO1w3RTK5OW" +"JWzsriLJaXQ" +"jvxgIJppxSb" +"r0dN0zSyxxo" +"ETEohvsBVFa" +"oXJaEdhOBpD" +"rQeokN70ksF" +"m6j33IBg2cI" +"L5580CoHjjk" +"qqozl3Ik9Ss" +"BEhZh25cWME" +"Nxl1ceH658e" +"z4TKrYxjfWP" +"w552Q5GaFdk" +"ygZI5uJLa0h" +"zCZbdZagTIC" +"nFamls0dWBJ" +"oUduPbEBiqd" +"rknmC954KXn" +"F4Ag7njmlur" +"ueuTEzU19xi" +"DRFumGAORcQ" +"eY8yYcyRrd2" +"laQiXv9q0mw" +"wVtgERw7V1j" +"JHaMpaDbNge" +"JseMB8zUjqW" +"W0Fv1IE5kdX" +"UgwCqzl0YlL" +"HmJWUBhCTAj" +"CR0xTXqtzam" +"xYrozMD4dK2" +"YaxR36vYVx1" +"FaBi9OurvnI" +"mW3PFlMPKZa" +"Hj3eRSVZWuK" +"GU7iO4fx841" +"wk84YZFzzbT" +"YGiavYg3Mg7" +"PtRvR2OEiP3" +"wX4W1bzsyYz" +"tjtKnCGZHIp" +"D2T7ffYHe2l" +"qLvgqlGFjHs" +"xdtypAEqP4K" +"VhwOCBJ4m5d" +"JhcpkRLod9i" +"ZZuJm9B1ulU" +"YHRPWx3UMPK" +"vzrvi4nZCOw" +"knDTOWytdjN" +"EJ9dfdBSby9" +"opopP9jUmto" +"u7VlU7eJpSY" +"fEK03OsVYNK" +"YOI6o7bUQAl" +"KN0iRHceBDa" +"OmaElL0qeNt" +"QNJO6vL8nVc" +"N864FBZtXkq" +"PL5Nve8H9Es" +"rIQJGEls8Cu" +"v2esgkDpjXV" +"s5oFNqlAlVU" +"KoawxYIldkX" +"hcQZXbLkSea" +"tDueCMRWY7b" +"wyIMkwjWph2" +"hFSGqZvjcoh" +"FA0O2ro28rK" +"KMuv0gXGf5J" +"ZCniSGihfVI" +"fLc2MtFMKfn" +"Na4yrw5U6au" +"g0FZoStS6FR" +"bIBCwK0MLta" +"ZorAk62GHQP" +"eYgzqAy74Cl" +"Kfw2WKy9aVN" +"atDucGVjJg4" +"Klgj2NvWmIX" +"APlUXrGE7PQ" +"I3BZ5GynF7z" +"bPa7A9cZogC" +"XBz3SeLhTR5" +"AFs0tEmVTsZ" +"bzoT23f1Uma" +"tFPzF1PdQYD" +"zrADoxyP1iP" +"Em42dYQaT6T" +"nkk4fjd9ncb" +"hZxBqL2oyE4" +"snMVrjxxOz3" +"udJcP2om689" +"Ws5iRBYjate" +"jfc33Rhyi7f" +"LIMyKyWq6mU" +"lpy4sNPFwpJ" +"Nh9RvKcaI4s" +"aqDrgEYTCsP" +"bSywJMz2npY" +"mhqQSlJOBnn" +"cuceo5ISwKt" +"TO2HjqkY6LP" +"H6R0tdw1IMY" +"Ltr4h1LrRfQ" +"y3eWips7K0A" +"TD0cmwWHVKG" +"KasNG6QooQ3" +"mt5RPwSqCs9" +"PQqoUuQX8cI" +"CZWnHT18xk2" +"qYcSGLaby10" +"vUmh9M8lscJ" +"OM4ElGBDlzw" +"ERqZONwH42k" +"uinpvcp6wjj" +"JoaY2xCSFeS" +"Oyo2jBxgBpQ" +"eo268bxdru0" +"ySiy539hsZs" +"Zh8VgS2wvym" +"tRiUpL8GMkP" +"I5bKrT2hrSq" +"ftkCiTGztA0" +"tQbnpOJSWlL" +"DR5LSFNa7wE" +"wQRBJpM3cqA" +"jeKg536yEDn" +"cnP5c60lg9W" +"OtYi4jBEuOA" +"wihQOkR2NOB" +"lBG5qzwB4Ae" +"UjcrhPtx4xi" +"NuEpsfbXFHO" +"iKPp4z223Mm" +"UpKUoh5mEJx" +"L9jFq50FN7B" +"YaFx5nd7gDK" +"eaFt479QNnl" +"k6VQqULmBgi" +"NDJkZAbbtqD" +"NEX9RuermlV" +"crgO46I0lGA" +"HdOijyt6i4K" +"SuUwORG0OZ3" +"Wg56YAsflpZ" +"tJWA5PtaCzS" +"zwOoKFZOlBh" +"Re83ZVBWck0" +"PVJQvVnCEzW" +"jAGrl9L1TIM" +"UBLBQuJ2hXz" +"fxunaPsMSoo" +"wOZosshfExD" +"ve8ycOwPR7h" +"H9Qz7XtiMmX" +"S0eQQCBVU3y" +"xvCjrdBpnwz" +"YuvYxTilHIN" +"Bv77MgZhgPg" +"NpDkJ7dW1k6" +"zkDN13Tt4x6" +"qUaA7ohOwWG" +"yoHcqNl8zLs" +"MVmBQXEHy8k" +"vjSKnRJxAWw" +"KdCFhH0Hd40" +"UC1QqOStdsD" +"rppTV8fRhbk" +"hD5NAEkW3KW" +"j2fylxCpkQ8" +"jJZPlpLEMWU" +"vDMvX5cs8XJ" +"XiVVlpVBEYP" +"AIFraOll9jH" +"VuNsE5wdKUe" +"xROmJf1yqmq" +"Ixg583xhp5O" +"IFs678kTois" +"IlzhRLBjj27" +"C6ZbZ8Q7qsm" +"ClKFg3TZH8p" +"dNUUhrPM4HW" +"r7mc1wUHkXr" +"F7U0tLXESEF" +"PaaDbwEVrnK" +"dbaAXcT9516" +"rEPzZqB38XG" +"qZUowHCWMSg" +"SdWZmHkWGb3" +"wvlKlpAFdHX" +"kU8DA9oRUTT" +"mSWq62qDaUM" +"cONoax462Lx" +"jbsrjYDh6kH" +"W4iznbrjrSa" +"Nwr4bXRmNm4" +"xmOn166nyfd" +"ZRQ2wNW21p2" +"f9nH4oAVtmc" +"gWpVEBTYNPe" +"uV7iIqWfNSY" +"nHzqCVdgj8n" +"FcBIwXC71d4" +"mkhHzBsaqkm" +"d4Y3DQcb7Dz" +"by9hoA7jitX" +"vziq7nTKcO3" +"A4SjUMyWHLE" +"EuCoe7E9dwk" +"h2L0sEqDpaF" +"WdTuCx5Ua1l" +"KqsVlY5Zy8t" +"PgkZYIm3BYK" +"vvK8lHfnlcV" +"FJF9hmTPGqy" +"qkfPrFllkPc" +"OGAez9z2ewx" +"voYtta0HUM9" +"G1UvIhTLKAL" +"HGJ4uWHm4Np" +"tmYg7WsC7fN" +"GTc5gbgxzGB" +"D3RN600eDlK" +"ytncAcsKu6B" +"lTTRelYxFtO" +"PeaVlaYW7vj" +"fQ1VZOrnweC" +"Wcj2H7HUmFw" +"yjtbEPZFQZ1" +"uDbPNiXrHG4" +"yLQc390Xq0l" +"msC7W47tj7S" +"oLAaTXP4CD3" +"HXQzKRYANlF" +"DSVfRVWGgcG" +"zLFLrgBzBIv" +"eEoHNxf8p43" +"DGy9bguNlh3" +"dYi2EDFLNfv" +"QKpsRfHzLJW" +"LSMFjAGz6Ka" +"W6t5fruka2m" +"TR1tpaGtRJF" +"S6FCj7pUu1f" +"ZLWWceRHBJ8" +"iwXAjfbTket" +"jXDHXEdClaq" +"d1ZVoSeCxBN" +"XeMundWC5x4" +"EF1nwqPXnDO" +"ROSzy7xelLo" +"BuPSQZHRaT3" +"QrLksEXXTCQ" +"dw75lxOfIc7" +"h4MXDgzHF4L" +"IPLxMXUAhw0" +"PAthk6X0zDu" +"G1ue7t1kEzV" +"s7Hibjz0nqP" +"oEBaBxJzcs4" +"OopRayNzF7c" +"RswKiRWTeCB" +"CAqruS5i6zK" +"bxvkVFyZ84v" +"MwH5iVnURcv" +"Of4XOrv1q6V" +"x3lLk1CogjJ" +"IwFTZzPabgs" +"mGKLqnVnFtL" +"zhuMEJrr6HV" +"rmPsFrtIlAo" +"KME93F5QCWx" +"Nx0M4Cw2jMq" +"amLpYnhGWn1" +"M2jD7cHaJne" +"YLmMXcEbVCN" +"LLpNyd1Gu8j" +"dXA7Mli5Ckq" +"gKLSkQjjbJ4" +"pq9hnyQvUj9" +"zXA1dz19Zid" +"cqyUAAVzbef" +"y5lJevmKEjf" +"XB4aIuoGACa" +"zUSjV060YKg" +"pQfsSriiNGr" +"vyVmadWM5sz" +"mTnE4VrnqR1" +"UTgcUslA3yi" +"lCO6nKlHKgA" +"PxW60JcddKZ" +"Qvght7Lr5u8" +"zzc3T548sAL" +"NHF3fusWf6S" +"Lq6e0Q6m0uk" +"MTlUjdz0HYY" +"Yt9X49bQrRE" +"g1fH7RrqHCx" +"dlrLnvsCZlk" +"GJ1AMyCIU0k" +"m3zHI8wLTPt" +"c9lLvw7FfHw" +"rBgf7KbB2IZ" +"eMI4nU3xs19" +"rtuOtaDXfE7" +"u195Kcj571S" +"eTDUevsxslg" +"CRx6mGsqd9W" +"wmfLTGWbUTe" +"ScFxc8IQh9S" +"Iqvja7OOzMk" +"vZKsJ7M6zlG" +"ONiYuZh0ZtX" +"m0jiJlfmwQW" +"sq7cJJbnaC1" +"x8bauRF5rmS" +"itw3NyXd9hU" +"zrcj3aMvp8P" +"PbCwYYPXpUy" +"wKFbG4IV9GN" +"GlcnMVVuhxW" +"g59yGzHcgLS" +"f4jmEEIKSos" +"bxjOTnTTA7X" +"G7fpW22CSPF" +"hgbeFzWQn7W" +"vBlRWF3DLS3" +"fsYEXVIVrDr" +"bKUF5zUOsQD" +"wIwQRB7Fge6" +"r3Vu39JRKMk" +"ciLrwlyi1dv" +"b5weT1q4MfP" +"vD9ROI7sqBM" +"S7lV81CEWVs" +"aD6LNvdiMuV" +"rXyxyoAgbIR" +"S3gYw3DaEYU" +"fYsR7D2x5lM" +"aCPtdZU2C7R" +"X5HXEKsZ2fr" +"qYzGABaWyCf" +"lXwHa7SD4QL" +"Xq9oPjnGb6q" +"zsWF9xspgml" +"uNOgcI63aoU" +"UuDvnvLz0H9" +"OBnYjEViQox" +"LIh273fHrkD" +"GPQ5dOXSJfN" +"nxGb6sd7p7D" +"xeiMMTy3SY4" +"DJ30KUNp7Jx" +"f3zKfAOJsML" +"JDURHImj6NG" +"ACzdZfcPxje" +"uGmlcjolWJQ" +"i5qTJgJrmMa" +"OWTpaz9X1RX" +"xWSoWDJ2evF" +"T5EaD8qyziS" +"qzT9WPEdci3" +"Z3IDOaDDkwG" +"GprWfFROQSq" +"lbHYdf0K35V" +"WCiZxCsRf8I" +"xWi9gh8oZKO" +"GTMGd9gNu7k" +"sPyITBca9iC" +"EGlefU013zq" +"qRppsyyTP4A" +"WtniIbuJk7k" +"IrPyq8lcDEX" +"vWbpmt8WBY4" +"cs4tFtYk5xN" +"TNNdsbJravD" +"LHO0q6IL1jy" +"s8PbMJU4MQ0" +"ZNjY2cHBPKG" +"tudl8JRJf2D" +"wm33j9cSswI" +"elfhvJK0aTM" +"HC9gzPNLgEp" +"AJdwBoWSe0W" +"dhEJ3Fcjx8D" +"PfLmWBth5y9" +"qaYDXPx3WuW" +"gXtidC5DUlC" +"ocAzUvFKBj0" +"ORTSIo2wpKu" +"nCASYr3b5MF" +"QWeibSkJybw" +"kCpLmPvaYKl" +"mRC5wkalD5C" +"WC4dngFLmOd" +"Y9DpmjuMwfm" +"lqLKNDExnbq" +"czbTdNInpFw" +"rxYFVl3VFkU" +"NZVY1yBTyp6" +"ovcYzPVUUWI" +"KGmy6CUXTRq" +"B7ruxHMJB6M" +"Yvdm19ny7Um" +"gfwHD9a1NO6" +"UksOD1lsa0u" +"Pcnhcaxuif1" +"a49C7kGwf9u" +"sCoLRakQgke" +"aM09E3nkMU5" +"I0yIs5CdhrN" +"pE7yNYwEgtu" +"RkYatsMnapn" +"uYxO8gaDGil" +"X1XlInZZBe4" +"WsCJPA73Pfy" +"cV7VYPgsAH9" +"zcW83095pxX" +"IDXkfYS25Kt" +"j70VJIwPOxY" +"gqsvUCJdCgC" +"PFrngHei0S1" +"Y21M3gfnCZ8" +"Y8tOboornd1" +"RkOmuCyrvsT" +"CB9pIEeai3U" +"RVmIVRhx8Y4" +"trum80c8biO" +"c5nJPMOo3bO" +"EfGhuuc1dC0" +"TnEfGrZsKVV" +"msP4OAAYawm" +"Hq7l26QbHAU" +"eOTucMlDtux" +"AzCQnXGgts6" +"afGvs0dpHt2" +"ZHOZlqLKuIe" +"pjaW8X1Ko20" +"tE95XAEi8qq" +"FSYr4OvAnWJ" +"YMA2KzJPMSY" +"QKr5lUUdW3l" +"SmOB12V60lg" +"sss5NyuuRog" +"vQKmOA6jjqq" +"eOtXSMWE6a8" +"tj3Ar6OlXkc" +"ZbvD0jFwVKp" +"SGVs4MLm9wV" +"p2hVtS276PB" +"lvQxBKnwX90" +"M8iULGgSqhb" +"cPO0XR01hKZ" +"NCJMcvy0nHt" +"x1MDzPVDvmK" +"xm9S4Vvy8xf" +"LQtpzAcc9QF" +"wRMeE2Jk2kr" +"dYUpc7PRZUk" +"DaY0mU3V8a7" +"jz2IXUlHHMW" +"SWVGCwgrvMX" +"ceOnGaH5r0n" +"aXHG80olVqr" +"oNaIIDAXmhR" +"N3JudAnE2BV" +"s6vyRre6Yt4" +"tVBvqbPqjH6" +"SwUrg0CePwx" +"Ur0XOQY2HtG" +"GIov8P3P62G" +"hu1aXuBmkJ2" +"ou15MoWGZ3k" +"bxyNgtdqhPe" +"M7kclECuomB" +"fsIf6Dh3R7C" +"SSDVixBnw0n" +"HU0olgZslpP" +"orAI3YwxWou" +"JeCVfWOofYF" +"iytQoFkQjqV" +"mW8CJ7BLipn" +"tcOLqU6ieM6" +"p1gYaXxpyk8" +"Ao7WsTe6wvO" +"ONiP8h437BC" +"I5UvxMgcnNR" +"OvQquPxd57H" +"LO2XhiLb4hI" +"UZ8m2bymRJT" +"bMu3IqXWrFR" +"fecMcTJQLGc" +"QMahblY1xEd" +"DUhEMcPxHIH" +"abtO5wcQbsH" +"E2ErYu25PCJ" +"w5nkyToNJd4" +"MbbwrPZERvl" +"MJ5Ep2e4eqs" +"Efj5yiDDlmT" +"O5fSSbjRZDh" +"jeHPQ7NcxKO" +"OpsVFL97XKY" +"yHpPnb5CQ7r" +"AJayqqGyQgl" +"JEQrKyALZms" +"mhp8hJq7zhX" +"KQOiiwmG4P7" +"SCocKNlviny" +"pDg8djCo0c1" +"tOt6RC8sphA" +"XiyYWGTxuSg" +"glAvMvEwXql" +"R5jIPn9DRti" +"YQGDBOiAsny" +"zlwN645D4X7" +"lDgHhlAPrbI" +"A4RKAXHmMJz" +"R1TD9cLgVJC" +"yyFZmLNIBaZ" +"DRiysZWQJ57" +"H6NcMrB8ch1" +"JVXPyu8T2fO" +"x3Jtz1p08DG" +"PplaGqQY6em" +"Tx7mEkhSvGY" +"C4PnwquCK8U" +"LefKJliT7Um" +"uKnSONcq5z2" +"lYnn6SJIRpE" +"tfnVnn3ePQo" +"IbPHpqjldVS" +"EW30grq0Rul" +"GF30kP7XtPE" +"VquxsShYqxT" +"iwMACsOnSoF" +"aJP3xfJJBo9" +"MTCky7phFgk" +"kvZ2qr0e1LJ" +"vUgS1uH7VpC" +"x0EwnXR7vRy" +"sFtLTzF5lYd" +"Ny8moKJEMdb" +"MgiUujSWEyn" +"xAqvv31PgDA" +"wRNOzOFe1WS" +"d1Fzs602f2P" +"wCpl1hP9Rdd" +"XeLC2rMfvyh" +"QXGT5XZ2koY" +"d4T4kOrNZQt" +"iaqTz40oq60" +"jtWm6BrWBfi" +"EBkpIBcOA9A" +"iszxvkYoFYE" +"txFyFeoGz68" +"PXHPMIptTCF" +"n1AgYTOUQzB" +"kS3wbPiW23v" +"xED69lucisK" +"gevJGzS9xhJ" +"oP4X3H0qgNA" +"PB4O98yWEJz" +"jrktQOoojVg" +"fqY86Yw8x6h" +"f99z0CMeVnU" +"bQ96Rn4u3va" +"RxzI5VbRhM4" +"ItugRu8b7f4" +"BDbhYKWQNOy" +"e0DvxtUqzCS" +"mMec72pw0ns" +"G7gdlc95pGE" +"bIYjUuqf1sf" +"Tbq3JMDALZt" +"sphpbVxO6pn" +"A1gVLZ5bHiS" +"VljEgS6qanC" +"kaVgIVGXcf7" +"h8m60u0XlJf" +"gbLhkaWG4rr" +"qIpTCaEVo8q" +"gbepWpyaGdj" +"WdtNaOc3FbT" +"iO2edHMzzoa" +"M0xXLu8QbHW" +"soCirDJfP4S" +"A0BC4zSGPwM" +"ZIMjWiBet30" +"gn42ZCLVhzf" +"OCzaanZX0v0" +"RP2cXnuZq8a" +"zF5mSLNG4Cl" +"yBnmZCQmDeX" +"OYaCYF6BNST" +"Nx2P930hOHB" +"XFTvFUirnjA" +"M5TOiiYVWwN" +"inIsXJ57Si9" +"UHkc4iGio0L" +"xy2ubunOGVi" +"H9vJQr39c4B" +"S0nWEBcp4qo" +"SeUHzwEWOUn" +"DW4iKNGrY42" +"ZFzQpYAw1RT" +"y20aapE6KYr" +"IBZqPDOCobI" +"sXq9qYR3Q3K" +"mVgMb1mDaDX" +"IZOS05Z8QAL" +"nfKmgVvY7zs" +"mMORYzJBnzi" +"I5jmTunFZY2" +"RP7IFVrrOux" +"jN4aiIfSLRL" +"oSVLBSVLtZi" +"Toe5zU8RLT5" +"cS6agZiN32t" +"hhmLIpoAvAg" +"q93HBF7r7P4" +"Y2tnI4r0GkW" +"K8QjRAXFqNS" +"ZqLCPqjFIWZ" +"wpg5evyl1OL" +"mvPRqBFtVC0" +"FjSmRywOWUp" +"DiFv5WXIHM5" +"tKOXiaNhAyJ" +"YGI7vISD2kJ" +"tjhYqc1MlVo" +"zTaMbxvQtJ6" +"HuwCoDZG0FY" +"jyhIrCoB31x" +"dDOqoFnD5Be" +"PekKUkKHAzY" +"zphK9WV8JB4" +"JQKLKuVuY61" +"ScR9iFKAasW" +"kxuuIFpOXyO" +"YCKiBAp8QAg" +"am530wpaGvr" +"fiRkU6gEjLz" +"UCy710RAWRp" +"msW2zpIN7up" +"GkIwZrXy1h2" +"cPtvxaZqXIH" +"ZCjuwgaMB9u" +"vA4NcHxfMBq" +"E7zpfyBt7Tw" +"lPTyjLi4w3d" +"ir8wuHHzoSs" +"mxqa3CDFmIT" +"U8c0so51kT6" +"oiPR2CiVJbf" +"TYnMSwzko3z" +"lLDyBx5XyUi" +"umc2n1Z4wNv" +"wNqJp8oRIcF" +"gwVYinjBAe9" +"rpw540fmNUz" +"AZyWpGzhcaA" +"ul0y9diGujK" +"fyEoGEPERdI" +"PQZgU9dagaH" +"ekAcXW11CZ1" +"Zpnu5qr8aoR" +"NCUTZ4cYJra" +"L7h5gCdfKAF" +"jDWCkBXYllV" +"Me6VFCZmgew" +"SIgUX4PJgJD" +"kKXWgaF11TT" +"sAFsng0gK1E" +"KtlpdTLliJg" +"VESMH20BX4e" +"RTCsjF28gNA" +"aoD09rD9W63" +"KipLfqm48wI" +"b0DaXHh8J8Q" +"FYmZonhCRcn" +"BdhM2BIXWgw" +"rPJ8B53FKqF" +"JiyIWhXzTWd" +"b9sP7gLskme" +"ar9MMZxpljr" +"YOJg1GA3qHT" +"CotlFJ64kUi" +"jwLNNIw1MjY" +"hxMhtp0apCm" +"Oi0uBOAAVj9" +"c4qdq9NbKuX" +"yui33D90Efv" +"SEWXP7RQHGN" +"TAW0CceBfZ5" +"nfk2rLcVuFx" +"IbTdghFlhMi" +"MrzLUXqobYg" +"ld9H4kG1Bnr" +"j7R6NW899TU" +"p1khrkzyj1C" +"yyR3ZgRyBzQ" +"EOiaX9x1o8g" +"YDiTYO8iXlo" +"MLWfwGSAExm" +"Ld3DBzAtu2q" +"ZZlLKqhLyve" +"BdBJXnCZRJ5" +"siMZUtd2cJW" +"DZGJZHBfYq5" +"PsPP6q4tzAb" +"Vh2EJnEZSsW" +"q1jcVin8vvD" +"EU2LFjnUoDe" +"EIzDG2iU7QA" +"uTYaIAY3Rdg" +"LlAP0m3z5FB" +"RNOHZDcvD0C" +"INU6NqUEjiG" +"N7oaQl2LpPr" +"liTRatgsSjS" +"ENfUmELYWwh" +"nfuEhMjGIza" +"YigsloDQQ6k" +"TEdVtDQdJpG" +"DhlC62YWEPo" +"NUNNhuEIKSi" +"hQVyqacAwmf" +"DbKN1FBhTpa" +"YUe7e0hebL4" +"yC4ye65DZNI" +"qBO4qIIG6Ti" +"XsmWQQueMp8" +"rLlgwmoLsNZ" +"tWbwLzdYexL" +"IQRztMexXwm" +"HU0s7kUh6w9" +"PSyoMabuxF4" +"erpCFZj6yFu" +"pRNjUammgeK" +"LXdsxJVo6Gk" +"Mt26U3BtZWW" +"R4vqlQuPEP3" +"vSN6HHeBPqw" +"sXsTHBsj0rh" +"pq7kECDgKc7" +"i5hb4KFA5MW" +"GBuVMaobpww" +"gsAcqPGkabf" +"W1EHlIiNm7L" +"yNTAsxa4JYC" +"rwV3sqg9IyH" +"XzSGf4ZxlR6" +"xod2zGl32QR" +"F8ealt899Lx" +"ERH1gaeZSqG" +"J1P31dMvu7x" +"EuopELCVYdk" +"LaLcSZWEEMv" +"G22rHB3F3Ew" +"DB9jvKNvPXU" +"X1YSuZzQAP8" +"ek80rI6DFKt" +"mWutl8clHfY" +"uRYQ3xO3I6F" +"JPR7FWvI4Jq" +"H7zZFfHCS3p" +"eGalRf62pxe" +"MLdHgMQUM3y" +"GAfGnvcVZ6k" +"SSqrxMy7RHB" +"abbiqwv4nNw" +"chS82SaWUb0" +"j5uy1Add8lx" +"WXvWYq7i2Az" +"Z1raiKJH6yv" +"P9Plp51eAEF" +"vgIQ1CTz9iA" +"uy6wPDsejx2" +"gVcYcEAzFcS" +"yU1gUGUuwJa" +"p0gjZsSphyH" +"i9n4mdP1Yoq" +"RZg0m3BlAxA" +"FSos9urQWpC" +"y6A26Cgigmf" +"cBLwAjPmhqr" +"Y4iLAJwAYhz" +"CSAHT9ua6ns" +"KZ3KdQIFLD9" +"v6aNofy5b9w" +"wt4O8TC8RiW" +"qAi2Dd9Fgss" +"ZQ8FPPe7PAc" +"oGnPXCiPyhY" +"Zh2TROUn7YV" +"ve9jT1mLPhZ" +"HfWaAHXIPCB" +"IfCjWZY5FUq" +"zJh5hllFYRY" +"KWgDpbnndTO" +"jb4yaCTRUmC" +"vMi2CMpPnWH" +"s4GMv81Degu" +"TW4pXSfa4iK" +"O5NOur49aJO" +"bRCFPs3StuH" +"sbP7YJx3cgH" +"taJjLW2MrND" +"j5udYfEVomU" +"ezviCws94Gg" +"I9VvxUvmtcP" +"sRpxsqTIeky" +"TBnHzsJmwfB" +"EHTOCGStA1l" +"HjQq5P8J1dl" +"tvg0hzLupnZ" +"fgpMooGcUHW" +"bbUM5S0O2H0" +"fpHVwGlHYNW" +"Uy3rJYY2bJm" +"lbdOntPQ5QB" +"tUU9lhoIRdV" +"kN3EHBjHrPS" +"wTXzWVGRGpv" +"PCHyG76TMk5" +"ceplnlWMVHq" +"ttOlWNYsdk6" +"B77GlIF6Qln" +"sGYFreBJ154" +"ueb96MIcBH1" +"Ij8gq59PIjb" +"qo2tRIuKMgC" +"p1E1K4MWGpa" +"Bgbu468ravl" +"LAqkN1BOIZt" +"h420jGWIrGG" +"DNl04xA5EHw" +"GFHwILhoJZm" +"jTVZDjqTZMd" +"tuBMCugGRaW" +"ywrW3s6hdK0" +"t1yFBKpeJ3g" +"Bx71ekAkh9C" +"aoTnpGNer6B" +"OAIa0wJPpZ2" +"YuCXbH1INNN" +"UZY7KMPCrJM" +"VZPe5oVGVWf" +"Hf5RNaLp5Rc" +"NXV5m5fAdaP" +"L59auomWK9a" +"Pq71pfCpkex" +"us2FGzlnk8l" +"NNQWafT8kCV" +"AXM3xqXyh0j" +"ymcLoFo1XOp" +"Ju4V7SZ8jJp" +"BY6kspbkJW9" +"y0iYP9PzR3F" +"Q7sR8Vato1j" +"jP6YHtU87iQ" +"PfyEcru7EUk" +"ac7dqG6khLK" +"cCDFkhO0ITL" +"RW6UI8zTazb" +"rGkz0zhJLfr" +"dydqYNPbwDc" +"D9dGCrs8rkJ" +"vQsUkgj7fuA" +"U8IafTP7w7L" +"xhBacuWMJPS" +"DjW2vEv4mf2" +"DoPAA70ylOJ" +"ri7dSGxwDav" +"kOGT3ksxeSh" +"zPlOd5VH1r4" +"Ox9AGEiwXhL" +"ZnpFreAC44z" +"BFHI8ktsvQ1" +"RzshrAPG7FJ" +"pqFvbVz4qqH" +"bbqQmjUlRME" +"BFWGUrkBvfy" +"BoIxivHASNY" +"T7tgoZWsBNI" +"rTOv2mSieIJ" +"wJfJepN9E40" +"b5i77fVnsOC" +"yPMAadGMkkj" +"HKcwDYQDbB5" +"Pv8QkwEnhlu" +"QwqeXGLpLfi" +"abEAqJ2swgH" +"jPDTEACJNYQ" +"ROKgB9sl4NS" +"IOb5dQ3OH9g" +"CmLJdTTkdeN" +"tYc1vr3hkQT" +"LkPG7laQW7D" +"pS6gZ9UzcCh" +"eCA3mk4eZwR" +"w24vxDsKLb4" +"Eh5wo7Ai5Gi" +"CSkFLNHPX4y" +"VinRZs6sjJC" +"inoumocfPzI" +"MRjKULkQGpJ" +"Dot5BC25vGE" +"KoIhkstxZvm" +"FYUOhjfUrmi" +"AlOhkfswoxd" +"P4PW99wpsn1" +"kD5Taovu6hV" +"bZZIRdmpvzl" +"fTm0225fPSI" +"DjPJvo6RGcf" +"ZHFKJsMPZVi" +"SwpbCcZVH20" +"ftyaOT8OyxI" +"wCOgOZTTNup" +"X4a9cVukNWE" +"GnzoMbgSC0E" +"i11Ndz059Ov" +"adRdxZzhbo6" +"H1glVXjRnq2" +"h4zbL6Xn2Hv" +"ylsCHquNG6v" +"HQTZB2b3mz2" +"n1bnpEXQuaZ" +"ggmBKwXPaC6" +"bQt6U1hAycX" +"PXBmCDrzTVD" +"lyUSdwzGOOn" +"kWI3KPnSSow" +"Wfh0AVZmweH" +"yzo4zzmIqnM" +"KpqchxZh5om" +"jroL3hiQ0EZ" +"IGD83r0LTFw" +"QHZWRMZbmbh" +"jmLWq9iBHeL" +"mnN9e4CYVOT" +"DGiPR0gbRdc" +"qwv9YqyyQOp" +"x7b9JfWWuF6" +"x3R8hRe7Syk" +"M7BDwkygi3N" +"D2Y1fZWjpnE" +"n0FAHuR77LM" +"yqUtGXIjI3D" +"XWzXu5BUhSB" +"atw5vNMFioR" +"MAhDT07Z48L" +"gIr0XOjgftp" +"iEpM5Avy9ZK" +"v3RddolFXEJ" +"um9Gwcmuy4r" +"Rk6BrmOQ8iU" +"asS6qKTNGdz" +"wXvymgZL74L" +"bXPcszbDNQl" +"LPzoiYctXli" +"Uakzo4ezfDB" +"x2BWrk9gLX5" +"xlbin1zVtRm" +"fDOVpkhiy36" +"tkrSbsxwMOE" +"QDSfxRXtbr1" +"ajEbxwHWO67" +"gnFRCSeNZWd" +"tgHdEExgYbV" +"WBcewaQuWIK" +"irNiBftx83p" +"IU6nfWD1aTy" +"uLhi7cdmfWA" +"Imiv5NhvFyj" +"j65zifK0OX3" +"TSKONml3tdl" +"mEB5xPggDEd" +"Q6SLJ0iou4u" +"G1WOgJCQrxE" +"d9cV3v6trDW" +"p4qMUnLJCyC" +"JUjFTp1cqp8" +"N7UmWukwldA" +"Ob8juX3Kpvw" +"gKZpBk7Y1Sp" +"K2l3X1FeBaw" +"matOgI3Y12V" +"i0P8y2YRV9m" +"ooi66x6vAs7" +"tjAeRhElWLO" +"uTpHXBz9bk6" +"DXXjREHyM1W" +"nGdL9qCCIC3" +"CiNMST2hJR4" +"wHyxqDBkQz0" +"pcib7Ubi755" +"L53slqyK6U3" +"EIgwTZYQ4AM" +"mJSKgMf0d8m" +"WoY407hAIg1" +"JnuWHwhBcgi" +"hiMbD73Wd6d" +"dSYiUZRjHQL" +"cRRjY1Et6VC" +"PODWsFaOBvm" +"j5rpOGKXlCH" +"FcC68pmPvAk" +"Lnt7tf8ex2n" +"xvMF1Pp58Od" +"FGZxGeCGng4" +"zISPNxlpV1d" +"sV2LoFLMGCY" +"CVCQcmJZidp" +"FcOecyqzd5M" +"hdn9cVK1k0z" +"YzBaW2q6EUg" +"IMksPDAO9RH" +"IzrtUDgZDJl" +"oclW5JZxGqg" +"wY0DrqWUGB5" +"h8YedPAHNhF" +"XDhVeuNnQKK" +"SjFut5OZeix" +"yVVY7DD2XZg" +"aFkuC9M5rny" +"p3HryYU6rVi" +"t7SHZz4FwsF" +"PKNRD5GxM4D" +"cnvySs9WnJU" +"PcXTNoVUrUc" +"QyshCnaj7tY" +"rdCXVfj3zze" +"PeQ1eG5oOt3" +"SC9aMWynjQ4" +"WVWr8J3W7e1" +"V8vAsChI2N5" +"GTlSrjqhet2" +"rUDaAx5NY87" +"Gv5ApcpDrIB" +"jaoX6p4NUZY" +"SUd0Latzp0z" +"rtBnaP4CaLe" +"rFkiQ8zxMya" +"bmRqeKE3Srw" +"owcgF3FNBz9" +"uHbIOtn8uNS" +"AaejvOngJzv" +"umVF3kzCQOj" +"PEaCSlDUGCg" +"tLsMlLSRpfE" +"v49jxVQO1c2" +"WPIvRWeSgQI" +"z18WXalvHis" +"QSPGnwVWfKl" +"cnqQSriMwp8" +"r1X2R3xCahF" +"WCjxS2szrtn" +"AQseEBNFuq7" +"kLhRnbNgmQo" +"JVO85UvyzFx" +"agaHu16ZNX0" +"ZE2mVxYeq6K" +"olUCraJY2gF" +"D3hgNLc7wl6" +"gscKZEtokgV" +"UjIWyffxj8z" +"wXiGo7bLJfZ" +"Goel5yB7uSx" +"RxbRsCG8uH4" +"Bb8nvv4bXgX" +"qYX65pdbrZz" +"c5WrtS2Uejj" +"i9EWbwJTLpl" +"S0aB3rpTY1t" +"T2bw9bxntl8" +"yOhFCpn5sYb" +"IEMuUwn38il" +"aW2XJGy2NZk" +"NLaq6KMNwa4" +"zU1Wnw8m86P" +"mpJGV1W05dg" +"fEexAr9qoty" +"gqw9hkhwrIe" +"UL2PuGciZ0O" +"ZDKmiYKQpq7" +"sDCgdgl39zn" +"Y1o37mwZv9D" +"m4ZIAwNvHGu" +"ZqIdMKJYNyc" +"Quu8PXwIv8m" +"I9I7WFHjAte" +"bntHIKmdtv7" +"NnAkN5yfxOs" +"rX4hscrLBeJ" +"lUwH3eBWnc8" +"U0X3FFbxLG6" +"lj66XBBD4RM" +"GgXE4SpT2qg" +"JqCmwAjmAdl" +"wrwOewzkKXu" +"tpymemEYnck" +"U5duvbj7rlb" +"lR8aTjNz6XY" +"FsHHbzluiJb" +"m9F275cBmJI" +"yhEeMg6lF5S" +"ouyiEelNaXp" +"Lryv2UvMIDv" +"kdQx4oc4vxQ" +"PerVslp3sdX" +"EhwbIln9cBp" +"ofADu4tfYGx" +"EOY02xi5HPB" +"N4R2sGukDe4" +"hdHzOX7oN7H" +"bNc4hKtrE0e" +"cv1b58B0y2U" +"tT1gKtPhvCL" +"tmXlI2pmZyl" +"h2wCziavPlv" +"btv31DCkh3k" +"h6FBV6CyGKR" +"a3vfnv7B3iM" +"sprbpgBWUqd" +"UlbBdvDSNO8" +"XcRTJKgyvXV" +"VZF9UFmohwY" +"tfsNJ75IDKn" +"oO3AikVUwsa" +"Rdt1TyOWaxM" +"pfr8iz9jJTi" +"cPDahRsvkf0" +"x7jcXKDYjwv" +"WRgQri3NDOl" +"iWgkJm78Jes" +"AlBctVMMqTZ" +"Vs3EnUbSIxB" +"vozdznXvEio" +"Ki37TBB3gFV" +"ZZY86jSqrRe" +"iSGuv0XmkFW" +"n5ZEsWziYrd" +"QgIToMQuTui" +"KDlDc415aZB" +"GcYxWQadLDB" +"D6upnSGqMuH" +"goAaVw5euIo" +"LehfgDTxQgE" +"HDDanYisp0p" +"G7b1qt8AWXX" +"HCYoxGq4gpn" +"tMliWxidVmG" +"shZLXgVt6IU" +"sOvyWDakEpr" +"AleGvYmLIii" +"vG7S9jJp8I1" +"aqh7c4tUYQS" +"sVmb2FInHpI" +"vd1oDNwAfsr" +"qToFRBvP3hw" +"bliiq8a0ZMa" +"HRlOm3DhuKZ" +"jwkn9GjFWAw" +"C2tMKsD3c9Y" +"F5GLJu0abYn" +"MfDcA52W2Mq" +"OHvwhZRmcFp" +"hnEDQxgQ2iV" +"aBfifMwaD01" +"ONYuNfx7Zx8" +"QIqtoDj9tee" +"gwAugxS9KhZ" +"oSleoOgcMmJ" +"dgzHXyQWBIu" +"k00te8l2zsS" +"oN3maBtKWd3" +"R5JFD4AykLF" +"b98JFSZUYP3" +"RsafOroWEu3" +"uzmvGujZv2K" +"zmdjGbqC0jW" +"H2TYawpBDO9" +"PttNphGaVik" +"KPUVZnaLTDR" +"kyxzmUPEuDx" +"fpDeHp6TgVr" +"ZnMLQFOFj1H" +"hcORKLsjQcP" +"pG8eoCppGvF" +"OiT27konvR0" +"Sb5HzC36Kkm" +"AUY4rGf5rCC" +"xi1tbUw0pLk" +"u57HZ1OQLOW" +"CYSpjqfwZAp" +"q57q1mvQl3j" +"jkEggeCHfCb" +"jDaD6QQu0qK" +"zBtTOW32g52" +"aaBbWMyFu8Q" +"r585CLnp3j5" +"yCVI5WlzkF0" +"CRf8LcPIIol" +"cb9SBT9Dkul" +"PNg9TjYhMHF" +"R82ZOAg1BN1" +"lEMyFfXc5fI" +"BZK6tOqdyJK" +"dDMUN4wq1lL" +"z2Hf7UvjJGf" +"CrULNvqXGDj" +"FRIJAlJc807" +"qBnATrM2yWb" +"oWQXNhdnVWe" +"AuSNxhrQO7b" +"yg0nBKIzEKK" +"wCtC32IBgsy" +"aTrdZQqac3E" +"SUzUiosYLZd" +"y84DcGXdwjF" +"AUQrr5i5UwN" +"wEMidDdxt0Y" +"Kvkf89poL9t" +"iVSPmqWhay3" +"S8ztvJDIhX7" +"vZzDic7wByf" +"ieGmEgBpNRi" +"ieDi203bOKl" +"k65flOHCxLR" +"Y983wAMNvuN" +"XyRGfsANEyO" +"NaBrh0Wr8yK" +"vHFjx27wlUq" +"TmTuXKs7fJw" +"OELkOLxvZxB" +"yFE6CwIZusP" +"V9efXhRK9Tu" +"pvQEf98W9Qa" +"Ui6EKlkAiUI" +"PRZ5AEFIaDq" +"OqKN8M6nPlg" +"a9MMsrc2RLy" +"zpHyHCIppMN" +"Yqiq8FXHUoa" +"c8U6IjBDxjX" +"HbuQjehitcw" +"zGUSKbhttpF" +"PwOps2kjwRa" +"zFnSMGsCx9d" +"HTJGcXeXSfw" +"ErLLXBVQjYq" +"KpKQR3f9vHE" +"GJfZVVf6p0S" +"ir1yI6FCCPC" +"WHIQYLPjWhS" +"umQ2wyQbjrp" +"V9wtbDbTUZF" +"zZh4Y9jWkf7" +"VSjaJisIhrP" +"rAM4dXPBk3S" +"RCnrtpCWBXE" +"P5PYWzi4i90" +"dmUww3Yc2a3" +"E5YiEi3aVPU" +"h3wDCb3HXys" +"pfQOa8qjAWa" +"QJkGGtt55eJ" +"tX52VifwHUu" +"nr1KW6Phcdv" +"uC4zOCWzvkB" +"DvX0m9kPSSJ" +"nLTv9WMYrlk" +"bpB4CaWr0Og" +"nmlcxOLyE3R" +"K9IxsrMH8L9" +"A8lvuTHEnpH" +"lJXeSL72Jp9" +"FA90z0EEFNw" +"aT4jdNyy3uo" +"QA0Y4i3aMD0" +"iLaRJWTHuox" +"FFVrb5EuIHE" +"UMQeeYIjltc" +"YSCuOhxOoT4" +"qlRze9OWajQ" +"ZwJiSfcQuXC" +"ItDqALnVhJU" +"YjfL91uanaq" +"lgamxMNctPV" +"AHVROEGOmE7" +"VCen2texeTy" +"zg5NKHBinEW" +"iF0iemJx8E4" +"bClUZsPix0k" +"pQqN0F0DFur" +"wXEvSgOI9MY" +"YbyyAgIaZnJ" +"bTlYTassV0d" +"yKJbD2tZS6g" +"ECAPURviviF" +"pBUjaG1iYen" +"HyZbr0Vp9IO" +"cLNG8cjy8ZH" +"QKAQA17EIVf" +"boTWfPoluce" +"bZsjHzJX6eR" +"fx3cQydw353" +"EaZoSETUQWz" +"Dm5ubQF8k9X" +"jWZe2JHG8KT" +"j5mev8YDdQ2" +"ntznuMwKnXg" +"txjb7ghB5Ui" +"rtyM81nTDA8" +"fIoO92ZOXfi" +"lUNFXfcKgEK" +"ZmrRnCW3llI" +"etNVRG8B30T" +"BLYwSlKrI52" +"z3Gtn3s3wcj" +"CNo9YKbC6Lg" +"DwTbknBGsOd" +"A1D6WVq7SnZ" +"UO23HGECIyS" +"ylZRa7Y8ufS" +"DPy1LHmXanT" +"EflfBjOI6Ph" +"YsZIqIumSBa" +"igZhh6kDhmQ" +"IvPI7oE84Vq" +"ohNhyTc0gIz" +"kxfd5hbFYdJ" +"oIsqSZbfuLh" +"gCxGKwGykFI" +"Wx5z1fjgoHg" +"Xk0IltY3lVw" +"I1JZSfp8vcM" +"T5NUM0tY6zG" +"yFhT3dGnTQZ" +"uT6GUemcyoT" +"YDpjfH2L57t" +"sClifP5VW08" +"oLNC2GQBMKK" +"gg5cWa5uulZ" +"B8JCwqZN7RN" +"KTFVfteCdTP" +"kO2dPAxrSOz" +"yZ1pPLPrxqK" +"VI3A97QVBug" +"fba5B7HBAPX" +"k8ehaCWrGKk" +"E6hJSi00Opm" +"qR4BO4zkFrI" +"WDwPAH57opV" +"rLqGxiPN7pE" +"pgTxj4cYQ68" +"MfZZmUhDlxq" +"VCCFz7EEZcC" +"ueF1XbqtAji" +"TNwwQ7F2jjz" +"bG0tPuIiB3V" +"wiqOd9chmFE" +"LIAbgVL6Vet" +"eWPNSLTHCsx" +"p1yWt0WB6GZ" +"sI8H8XIESqg" +"EZWRBKRQxEO" +"yL8t43BussR" +"cQ6Tf6jJg14" +"ahZ07WgEqeO" +"pkRfRtgmafc" +"FW78Ou6KKFU" +"GjRhc3dBQLs" +"s5jaAHfnfqL" +"JE6tZdbYGTd" +"PVchTJXoxyp" +"bOhuUIHQFaW" +"qmO4XhUr5Sh" +"AP2ovCVE25H" +"vLwiWNngHVa" +"tLIGKHiJJAj" +"gvogyUXDIX0" +"FotNFTcvfuC" +"wakl9Zg2EUG" +"hVxRYPVlafi" +"uSCHwx6umLy" +"HBfS8tgOaFO" +"An6NhwX8CAL" +"j4Kicn2MJcT" +"Vq03leDlPyK" +"yDUa15cMHKa" +"ZLIr1DNTnMK" +"soAIcPzcYzE" +"rkkI2f77q5t" +"ejikLJvqypx" +"fs5wnlQJVsD" +"iQP6sMIxs34" +"ZNM46EmjhIW" +"h9zFApu9xka" +"FV1k1EDxc41" +"QaqUu9vgorH" +"GBV7CsmDD37" +"hYE7ESNDauP" +"lG6CEZEBBz8" +"tyTgX5H0jkm" +"AeZKV2y4FmE" +"rQ1jPsQV6Iq" +"sNMoVbgC08a" +"I2wk4Eupd1p" +"C3hzjEbUGY7" +"w1I54NxWBAX" +"BATZOkeA239" +"G28ImG60bEy" +"CA9WFYJAtUb" +"bgH9feu8uJt" +"NWen8ZFBp4d" +"FkYNFW9LQ9R" +"e3kb4cALNVO" +"h2h7la8dm3H" +"HTNggnpUxo5" +"duySMi9VqeJ" +"dP08F6UY3TU" +"tAO3Fr3blJV" +"yVYkZ3nWNzG" +"P0OPoBYL1Fn" +"SJ5F0JSgzwr" +"fRlQ6cOrgtH" +"oxxVN5nTumf" +"GcuK6LNsXMg" +"Q12UEW61lN1" +"lRPR9ANGlm4" +"uZ7ineguntq" +"toCagUMIx9Y" +"a6IV5KjoVVl" +"WM6uJb7CSb0" +"povv2qRdZ3Q" +"EedkCkeXAoE" +"Q77pJqEI2GU" +"o6BWc2XOaR9" +"WI8ahyVe1nh" +"hWtv85y0q1m" +"J9aw7uO6K13" +"xDTUHtVsYFR" +"ED00zcDv1NP" +"OMlIhKx6FwZ" +"Ci4MTZzs9Dp" +"wp7SSQrJ3Zm" +"DkkJXiX9QtC" +"V06Z9orsuCm" +"uwN16dMrb0P" +"BMHypoM69EJ" +"AdD79wW6htR" +"Q4HjG7ZX0e7" +"yM0opwvCoWC" +"lEzQkbYVZcc" +"Xep54JzSOPL" +"lrZWlwzlpI7" +"GBwyy2AXkJX" +"VCWA39P4uD0" +"jTAbPHjYvpI" +"vUJoxqqtkGS" +"nMTxNdQuYO8" +"VvPrVm52CAR" +"Jn1IGXJFpmr" +"q3fo1Q0viFo" +"Z4T8jaSMA7Y" +"JuVq1B6yp7W" +"duBo3H32yVI" +"CUbwBUBDopX" +"HRbtoDxH26v" +"EzD16N9xhDy" +"WVN5P5BQL3H" +"BFJPdJYyZSS" +"qsgip4zfCsl" +"vMdNzNKajxW" +"mndbxwRfACp" +"EQizXuGYoyC" +"exaobovFrtu" +"VcmojzLvzmT" +"wyjZ8L6fcge" +"aUCEtB44Q1u" +"j7KiCT3SdRf" +"ImFP8AUjiNU" +"vkP1hKxVmrJ" +"mszioSxSYMT" +"mPYJ4Y6kQIN" +"AVCaYp1ZNZs" +"uiGvDzuDmh0" +"l08AgUbqqwy" +"xwdPX8eStea" +"h6IYnswIlt8" +"n6rJDqiS7AQ" +"fjRAy1I8UAA" +"JBjoblp7duU" +"AxhAJySJtIZ" +"b5Tnnp3mSC8" +"jNKE2vg0xW2" +"IPlA2I7ZDyY" +"AEgCiRdfPqk" +"zclMBQKy5pb" +"yNYcQEwClZq" +"msHKypyTOsd" +"f0rwq0ZvOpP" +"nsDXaAoyT5w" +"IluW7ZpCRu2" +"SOsMNj1PZHR" +"R0xn1W0wVia" +"ScJoPYf0zuU" +"Q5i1yGKG14e" +"HfZYPAvcxnV" +"e1GuGfjysgx" +"LGwM5T7Cfas" +"yEIIDwkgKFd" +"SxxTz4gYhQw" +"eSHEOHPHS0m" +"mnkQy9rMHDc" +"sj48C4b1iIo" +"r1mQwMyiJ6J" +"P1IfKJvvJjF" +"JT5rJpyKNm1" +"ApD29h3DTXi" +"iPgb36EMtaZ" +"niVCOn2FsFF" +"VuhgX5vFnOJ" +"A1V00o6uq0G" +"y0cygdhumHI" +"gRcDzd8Havi" +"Gq3yijKpYtE" +"N3hBufW5udb" +"LQDA8bBKmGl" +"Dk2rajWTf3p" +"QqH8PKSDr5Y" +"ZyJ62ad8arA" +"O1MLzwGIdaI" +"qvhPwMGUgmP" +"VgWQIctY7iL" +"Xkfs44Or8VB" +"ilghQXI6qYq" +"yU4WwDwy9Tn" +"a3zBlSiF0wB" +"hWLm2t2O2gU" +"uHWuOK5QEAg" +"JAyjF08jkOy" +"ze5XC3Spng8" +"KQ1obRaiEJc" +"pPAf46DUcp7" +"LvCBn26U2i2" +"FjppXDFJ9Tx" +"RjYF149Rr2v" +"hb829DJhS1q" +"b7OnyRR9AXI" +"i0ugMWVcB6M" +"BWcCmgezmbV" diff --git a/data-raw/COP25/update_cop25_datapack_schema.R b/data-raw/COP25/update_cop25_datapack_schema.R new file mode 100644 index 00000000..8e5cc224 --- /dev/null +++ b/data-raw/COP25/update_cop25_datapack_schema.R @@ -0,0 +1,22 @@ +## If you've made any edits to the Excel template, rebuild package first +## (Cmd+Shift+B) to capture these, then run the below. + +library(datapackr) + +datapack_template_filepath <- rprojroot::find_package_root_file("inst/extdata/COP25_Data_Pack_Template.xlsx") + +cop25_data_pack_schema <- + unPackSchema( + template_path = datapack_template_filepath, + cop_year = 2025) + +waldo::compare(datapackr::cop25_data_pack_schema, cop25_data_pack_schema, max_diffs = Inf) + +checkSchema(schema = cop25_data_pack_schema, + template_path = datapack_template_filepath, + cop_year = 2025, + tool = "Data Pack") + +usethis::use_data(cop25_data_pack_schema, overwrite = TRUE, compress = "xz") + +## Rebuild package again. (Cmd+Shift+B) diff --git a/data-raw/COP25/update_cop25_psnuxim_schema.R b/data-raw/COP25/update_cop25_psnuxim_schema.R new file mode 100644 index 00000000..96d0de78 --- /dev/null +++ b/data-raw/COP25/update_cop25_psnuxim_schema.R @@ -0,0 +1,26 @@ +## If you've made any edits to the Excel template, rebuild package first +## (Cmd+Shift+B) to capture these, then run the below. + +library(datapackr) + +datapack_template_filepath <- rprojroot::find_package_root_file("inst/extdata/COP25_PSNUxIM_Template.xlsx") + +cop25_psnuxim_schema <- + unPackSchema( + template_path = datapack_template_filepath, + tool = "PSNUxIM Template", + cop_year = 2025) + + +waldo::compare(datapackr::cop25_psnuxim_schema, cop25_psnuxim_schema) + +#TODO: May need to redo this whole process for the cop23_psnuxim_schema too + +checkSchema(schema = cop25_psnuxim_schema, + template_path = datapack_template_filepath, + cop_year = 2025, + tool = "PSNUxIM") + +usethis::use_data(cop24_psnuxim_schema, overwrite = TRUE, compress = "xz") + +## Rebuild package again. (Cmd+Shift+B) diff --git a/data-raw/update_cached_PSNUs.R b/data-raw/update_cached_PSNUs.R index 45b6473d..f95ff9fc 100644 --- a/data-raw/update_cached_PSNUs.R +++ b/data-raw/update_cached_PSNUs.R @@ -6,21 +6,27 @@ datimutils::loginToDATIM(secrets) # NOTE: Full documentation can be found in data.R # The current list can be viewed by running View(valid_OrgUnits) -cop_year <- 2024 +cop_year <- 2025 # valid_OrgUnits ---- # Fetch PSNU values -valid_OrgUnits <- getDataPackOrgUnits(use_cache = FALSE) +valid_OrgUnits_2025 <- getDataPackOrgUnits(use_cache = FALSE) # Comparing default valid_OrgUnits list to newly modified list +# we compare against the previous year initially +# once we create the file if we need to update replace 1234 in +# valid_OrgUnits_1234 with the existing cop year compare_diffs <- datapackr::valid_OrgUnits_2024 %>% - dplyr::full_join(valid_OrgUnits, by = "uid") %>% + dplyr::full_join(valid_OrgUnits_2025, by = "uid") %>% dplyr::filter(is.na(name.x) | is.na(name.y)) -waldo::compare(datapackr::valid_OrgUnits_2024, valid_OrgUnits) +# for cop 25 we compare against the previous year or latest +# if updating replace the cop year as done above +waldo::compare(datapackr::valid_OrgUnits_2024, valid_OrgUnits_2025) -# Overwriting default list with newly created list -usethis::use_data(valid_OrgUnits, +# when initially creating the value will be valid_OrgUnit_copyear +# when updating after, Overwriting default list with newly created list +usethis::use_data(valid_OrgUnits_2025, compress = "xz", overwrite = TRUE) ## Rebuild the package (Cmd+Shift+B) @@ -28,13 +34,13 @@ usethis::use_data(valid_OrgUnits, ## Save metadata in API for easy access by Data Management Team -shareable <- datapackr::valid_OrgUnits_2024 %>% +shareable <- datapackr::valid_OrgUnits_2025 %>% dplyr::select(orgUnit = uid) output_folder <- paste0(rprojroot::find_package_root_file(), "/data-raw/") -filename <- "cop24_metadata_organisationUnits" +filename <- "cop25_metadata_organisationUnits" filepath <- paste0(output_folder, filename, ".csv") @@ -46,7 +52,7 @@ utils::write.csv(shareable, filepath, row.names = FALSE) # cop_datapack_countries ---- # If anything has changed at country level or above, update dataframe of data pack countries/names -cop24_datapack_countries <- getValidOrgUnits(cop_year = cop_year) %>% +cop25_datapack_countries <- getValidOrgUnits(cop_year = cop_year) %>% dplyr::select(ou, ou_uid, country_name, country_uid) %>% dplyr::distinct() %>% # dplyr::mutate( @@ -66,4 +72,4 @@ cop24_datapack_countries <- getValidOrgUnits(cop_year = cop_year) %>% dplyr::summarise(country_uid = list(country_uid)) %>% dplyr::rename(country_uids = country_uid) -save(cop24_datapack_countries, file = "./data/cop24_datapack_countries.rda", compress = "xz") +save(cop25_datapack_countries, file = "./data/cop25_datapack_countries.rda", compress = "xz") diff --git a/data-raw/update_cached_map_datapack_cogs.R b/data-raw/update_cached_map_datapack_cogs.R index 5ba0878f..72ee11f3 100644 --- a/data-raw/update_cached_map_datapack_cogs.R +++ b/data-raw/update_cached_map_datapack_cogs.R @@ -3,18 +3,12 @@ library(magrittr) library(datapackr) # Point to DATIM login secrets #### -secrets <- Sys.getenv("SECRETS_FOLDER") %>% paste0(., "cop-test.json") +secrets <- Sys.getenv("SECRETS_FOLDER") %>% paste0(., "datim.json") datimutils::loginToDATIM(secrets) # Processing datapack_cogs <- datapackr::datapack_cogs -datapack_cogs$COP22 <- - datimutils::getMetadata(categoryOptionGroups, - fields = "id,name,categoryOptions[id,name]", # nolint - "groupSets.id:eq:hdEmBvPF3iq", - d2_session = d2_default_session) - datapack_cogs$COP23 <- datimutils::getMetadata(categoryOptionGroups, fields = "id,name,categoryOptions[id,name]", # nolint @@ -27,6 +21,12 @@ datapack_cogs$COP24 <- "groupSets.id:eq:NRX13fNOP2L", d2_session = d2_default_session) +datapack_cogs$COP25 <- + datimutils::getMetadata(categoryOptionGroups, + fields = "id,name,categoryOptions[id,name]", # nolint + "groupSets.id:eq:qUYbKI4AWHW", + d2_session = d2_default_session) + waldo::compare(datapackr::datapack_cogs, datapack_cogs) usethis::use_data(datapack_cogs, overwrite = TRUE, compress = "xz") diff --git a/data-raw/update_orgunit_levels_cache.R b/data-raw/update_orgunit_levels_cache.R index c2953b82..a3125899 100644 --- a/data-raw/update_orgunit_levels_cache.R +++ b/data-raw/update_orgunit_levels_cache.R @@ -2,6 +2,7 @@ # loginToDATIM(Sys.getenv("PROD_CREDS"), d2_session_name = "prod") secrets <- Sys.getenv("SECRETS_FOLDER") %>% paste0(., "datim.json") +loginToDATIM(secrets) fetchOrgunitLevels <- function(cop_year, d2_session) { ou_levels <- datimutils::getDataStoreKey("dataSetAssignments", "orgUnitLevels", d2_session = d2_session) @@ -26,18 +27,20 @@ fetchOrgunitLevels <- function(cop_year, d2_session) { #Retrieve the list of valid orgunits for the correct years ous <- valid_OrgUnits %>% dplyr::select(country_name, ou_uid, country_uid) %>% dplyr::distinct() ous_24 <-valid_OrgUnits_2024 %>% dplyr::select(country_name, ou_uid, country_uid) %>% dplyr::distinct() +ous_25 <-valid_OrgUnits_2024 %>% dplyr::select(country_name, ou_uid, country_uid) %>% dplyr::distinct() #Capture the previous dataset levels by looking at what is currently in the save datasetlevels.rda cop23_ou_levels <- dataset_levels %>% dplyr::filter(cop_year == 2023) +cop24_ou_levels <- dataset_levels %>% dplyr::filter(cop_year == 2024) #Capture the current dataset levels by fetching from Datim and sorting by the valid orgunits above -cop24_ou_levels <- fetchOrgunitLevels(2024, d2_default_session) %>% +cop25_ou_levels <- fetchOrgunitLevels(2025, d2_default_session) %>% dplyr::mutate(country_name = ifelse(country_name == "", ou, country_name), iso4 = ifelse(iso4 == "", iso3, iso4)) %>% - dplyr::left_join(ous_24, by = "country_name") + dplyr::left_join(ous_25, by = "country_name") #Combine the previous two dataframes into one for saving -dataset_levels <- rbind(cop23_ou_levels, cop24_ou_levels) +dataset_levels <- rbind(cop23_ou_levels, cop24_ou_levels, cop25_ou_levels) #Overwrite current dataset_levels.rda for the package usethis::use_data(dataset_levels, compress = "xz", overwrite = TRUE) diff --git a/data/cop25_data_pack_schema.rda b/data/cop25_data_pack_schema.rda new file mode 100644 index 00000000..9f973e85 Binary files /dev/null and b/data/cop25_data_pack_schema.rda differ diff --git a/data/cop25_datapack_countries.rda b/data/cop25_datapack_countries.rda new file mode 100644 index 00000000..98357925 Binary files /dev/null and b/data/cop25_datapack_countries.rda differ diff --git a/data/datapack_cogs.rda b/data/datapack_cogs.rda index 6af33b6f..071bf8e0 100644 Binary files a/data/datapack_cogs.rda and b/data/datapack_cogs.rda differ diff --git a/data/dataset_levels.rda b/data/dataset_levels.rda index 05e08bbf..995639a9 100644 Binary files a/data/dataset_levels.rda and b/data/dataset_levels.rda differ diff --git a/data/valid_OrgUnits_2025.rda b/data/valid_OrgUnits_2025.rda new file mode 100644 index 00000000..16578db9 Binary files /dev/null and b/data/valid_OrgUnits_2025.rda differ diff --git a/man/datapackr.Rd b/man/datapackr.Rd index c81bdbb6..4820ce05 100644 --- a/man/datapackr.Rd +++ b/man/datapackr.Rd @@ -2,7 +2,6 @@ % Please edit documentation in R/datapackr.R \docType{package} \name{datapackr} -\alias{-package} \alias{datapackr} \title{Data Pack on R} \description{