- Apr 04, 2018
-
-
imcovangent authored
Former-commit-id: 6ab33242077cba54374e5e0d332bb561a4683697
-
- Apr 03, 2018
-
-
imcovangent authored
Former-commit-id: cdb93017cef3664f59486ea8e67f2ba64ae988b8
-
imcovangent authored
Former-commit-id: 4daf782968e84545f94de74bda703f85835da55f
-
imcovangent authored
Fixed inconsistency in use of single and double quotes in load() function using a mix of CMDOWS and XML (CPACS) I/O files. Fixed addition of T instead of space in timestamp. Added check on workflow element in CMDOWS while loading to make sure the parameters exists (to avoid unexpected errors downstream). Former-commit-id: dc7b4f6a06003bd0f603fba427f423e3d262737f
-
imcovangent authored
Former-commit-id: 677244ae2090d1a5d30e221063c4eb9e25f74cf3
-
- Mar 31, 2018
-
-
maaikedieuwertje authored
Former-commit-id: 18ecce3c24eeb969eec8fa38bc63a15101214988
-
maaikedieuwertje authored
Former-commit-id: 05a16b9e354c5351b9aacd66cfb2db484fa3a105
-
maaikedieuwertje authored
Former-commit-id: 87314b99b51d9dc9b2a05cb5fb1441b23b544e86
-
maaikedieuwertje authored
Former-commit-id: d588f4a24473c26df3fe9d7278a12065d360744b
-
https://bitbucket.org/imcovangent/kadmosmaaikedieuwertje authored
Former-commit-id: 31200f69f4d769f17dd702070d8a002f4ce2546c
-
maaikedieuwertje authored
Former-commit-id: fcfa4979a1bea195f1cef7fe491adf7808117d35
-
- Mar 29, 2018
-
-
imcovangent authored
Former-commit-id: d4c29a55d6fb1f51aa872d66914c068593ae50cd
-
imcovangent authored
Former-commit-id: a0df9b57668d8be61470e848761bd4dc1d9f190c
-
imcovangent authored
Updated version strings to 0.8.0. Former-commit-id: eb918d185337e62407aa5fc2164cdfdd24a5f8fb
-
imcovangent authored
Former-commit-id: a8d31ca9b5a6881ca91fad9e7d552286ca80169b
-
imcovangent authored
Updated CMDOWS version to 0.8. Cleaned up examples folder to reduce size of the repository. Changed behaviour of the mode merge method. Former-commit-id: 75f2d34f2a9d2b5e94ad375507a9b9c3675c4ec4
-
imcovangent authored
# Conflicts: # examples/scripts/sellar_problem.py # examples/scripts/sellar_problem/(X)DSM/FPG_IDF.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_MDF-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_MDF-J.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_converged-DOE-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_converged-DOE-J.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_converged-MDA-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_converged-MDA-J.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-DOE-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-DOE-J.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-MDA-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-MDA-J.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-OPT-GS.pdf # examples/scripts/sellar_problem/(X)DSM/FPG_unconverged-OPT-J.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_IDF.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_MDF-GS.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_MDF-J.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_converged-DOE-GS.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_converged-MDA-GS.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_converged-MDA-J.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_unconverged-DOE-J.pdf # examples/scripts/sellar_problem/(X)DSM/MDAO_unconverged-MDA-GS.pdf # examples/scripts/sellar_problem/(X)DSM/Mdao_converged-DOE-J.pdf # examples/scripts/sellar_problem/(X)DSM/Mdao_unconverged-DOE-GS.pdf # examples/scripts/sellar_problem/(X)DSM/Mdao_unconverged-MDA-J.pdf # examples/scripts/sellar_problem/(X)DSM/Mdao_unconverged-OPT-GS.pdf # examples/scripts/sellar_problem/(X)DSM/Mdao_unconverged-OPT-J.pdf # examples/scripts/sellar_problem/(X)DSM/RCG.pdf # examples/scripts/sellar_problem/CMDOWS/FPG_IDF.xml # examples/scripts/sellar_problem/CMDOWS/FPG_MDF-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_MDF-J.xml # examples/scripts/sellar_problem/CMDOWS/FPG_converged-DOE-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_converged-DOE-J.xml # examples/scripts/sellar_problem/CMDOWS/FPG_converged-MDA-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_converged-MDA-J.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-DOE-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-DOE-J.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-MDA-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-MDA-J.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-OPT-GS.xml # examples/scripts/sellar_problem/CMDOWS/FPG_unconverged-OPT-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_IDF.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_MDF-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_MDF-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_converged-DOE-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_converged-DOE-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_converged-MDA-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_converged-MDA-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-DOE-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-DOE-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-MDA-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-MDA-J.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-OPT-GS.xml # examples/scripts/sellar_problem/CMDOWS/Mdao_unconverged-OPT-J.xml # examples/scripts/sellar_problem/CMDOWS/RCG.xml # examples/scripts/sellar_problem/KDMS/FPG_IDF.kdms # examples/scripts/sellar_problem/KDMS/FPG_MDF-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_MDF-J.kdms # examples/scripts/sellar_problem/KDMS/FPG_converged-DOE-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_converged-DOE-J.kdms # examples/scripts/sellar_problem/KDMS/FPG_converged-MDA-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_converged-MDA-J.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-DOE-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-DOE-J.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-MDA-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-MDA-J.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-OPT-GS.kdms # examples/scripts/sellar_problem/KDMS/FPG_unconverged-OPT-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_IDF.kdms # examples/scripts/sellar_problem/KDMS/Mdao_IDF_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_MDF-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_MDF-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_MDF-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_MDF-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-DOE-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-DOE-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-DOE-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-DOE-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-MDA-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-MDA-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-MDA-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_converged-MDA-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-DOE-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-DOE-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-DOE-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-DOE-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-MDA-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-MDA-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-MDA-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-MDA-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-OPT-GS.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-OPT-GS_mpg.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-OPT-J.kdms # examples/scripts/sellar_problem/KDMS/Mdao_unconverged-OPT-J_mpg.kdms # examples/scripts/sellar_problem/KDMS/RCG.kdms # examples/scripts/sellar_problem/VISTOMS/VISTOMS.html # examples/scripts/ssbj.py # examples/scripts/ssbj/(X)DSM/FPG_MDF-GS.pdf # examples/scripts/ssbj/(X)DSM/FPG_MDO.pdf # examples/scripts/ssbj/(X)DSM/RCG.pdf # examples/scripts/ssbj/CMDOWS/RCG.xml # examples/scripts/ssbj/VISTOMS/VISTOMS.html # examples/scripts/tu_delft_wing_design.py # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_IDF.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_MDF-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_MDF-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_converged-DOE-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_converged-DOE-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_converged-MDA-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_converged-MDA-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-DOE-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-DOE-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-MDA-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-MDA-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-OPT-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/FPG_unconverged-OPT-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_IDF.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_MDF-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_MDF-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_converged-DOE-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_converged-DOE-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_converged-MDA-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_converged-MDA-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-DOE-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-DOE-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-MDA-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-MDA-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-OPT-GS.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/Mdao_unconverged-OPT-J.pdf # examples/scripts/tu_delft_wing_design/(X)DSM/RCG.pdf # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_IDF.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_MDF-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_MDF-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_converged-DOE-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_converged-DOE-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_converged-MDA-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_converged-MDA-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-DOE-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-DOE-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-MDA-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-MDA-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-OPT-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/FPG_unconverged-OPT-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_IDF.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_MDF-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_MDF-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_converged-DOE-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_converged-DOE-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_converged-MDA-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_converged-MDA-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-DOE-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-DOE-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-MDA-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-MDA-J.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-OPT-GS.xml # examples/scripts/tu_delft_wing_design/CMDOWS/MDAO_unconverged-OPT-J.xml # examples/scripts/tu_delft_wing_design/KDMS/FPG_IDF.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_MDF-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_MDF-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_converged-DOE-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_converged-DOE-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_converged-MDA-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_converged-MDA-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-DOE-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-DOE-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-MDA-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-MDA-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-OPT-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/FPG_unconverged-OPT-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_IDF.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_IDF_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_MDF-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_MDF-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_MDF-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_MDF-J_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-DOE-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-DOE-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-DOE-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-DOE-J_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-MDA-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-MDA-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-MDA-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_converged-MDA-J_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-DOE-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-DOE-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-DOE-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-DOE-J_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-MDA-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-MDA-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-MDA-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-MDA-J_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-OPT-GS.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-OPT-GS_mpg.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-OPT-J.kdms # examples/scripts/tu_delft_wing_design/KDMS/Mdao_unconverged-OPT-J_mpg.kdms # examples/scripts/tu_delft_wing_design/VISTOMS/VISTOMS.html # kadmos/cmdows/cmdows.py # kadmos/graph/graph_data.py # kadmos/graph/graph_kadmos.py # kadmos/utilities/general.py Former-commit-id: 8992e3ca1248433773e973a45e239f6ce4046be5
-
- Mar 28, 2018
-
-
maaikedieuwertje authored
Added check_database() to perform database checks without the need to load() and include option in both to keep_running in case of an error. Former-commit-id: cb75a3bd56f53bd09f81d427ecc3ef792482dc42
-
maaikedieuwertje authored
Former-commit-id: 13195aef901f9fddf97d6c934d6e7a54afa16ba2
-
maaikedieuwertje authored
Added functionType to mathematicalFunction, bug fix tu_delft_wing_design (not using merge_parallel_functions for CNSTRNTs). Former-commit-id: cbfecb2ff7a5b3842090d21cf6f4e440e200ab9e
-
imcovangent authored
Former-commit-id: f441ef67b16bfe163c451ed07fe5c43156dc0d0b
-
- Mar 27, 2018
-
-
imcovangent authored
Former-commit-id: 7582a967e84eec1713d91c78c004de8ea2b913da
-
imcovangent authored
Former-commit-id: 034561970dae25ae0b9c755129464f1e5fcf9755
-
imcovangent authored
Added element function_type to mathematical functions. Former-commit-id: 199c1ab942c57492d0a71a4d1c737078a82a37ee
-
imcovangent authored
Former-commit-id: 245a1051fbaa6bfd367423cd68a672afb40e44d4
-
imcovangent authored
Former-commit-id: 326d62bb189769739b212af1f20fef6daf855226
-
- Mar 24, 2018
-
-
maaikedieuwertje authored
Former-commit-id: 9dfd8f10da92a12cf517ec80c306adcffdf7b29e
-
- Mar 23, 2018
-
-
imcovangent authored
Former-commit-id: 61a9167ac2e1a903bc263c8468dce9653ed85250
-
imcovangent authored
Updated BLISS-2000 to no more use consistencyConstraintFunctions element in architectureElements, but use mathematicalFunctions instead. Former-commit-id: 0ca27862f08483cf568de08ba69dbca67844ee9b
-
imcovangent authored
Former-commit-id: cffbe2cb8ba62af4b97b29ba9e6e3b1b8aebb03f
-
- Mar 21, 2018
-
-
imcovangent authored
Former-commit-id: 7a6f3886604d236eccf6813448973f1d11e9788e
-
imcovangent authored
Former-commit-id: 464bcfd1411112a8b34c3c95a53b200eb09698af
-
imcovangent authored
Merge branch 'dev_distr_architectures_surr_models' of https://bitbucket.org/imcovangent/kadmos into dev_distr_architectures_surr_models Former-commit-id: 6021213a0bd9e44ccb13bc09ede1cc30a3e2c662
-
imcovangent authored
Former-commit-id: baa2cec4f2214168234f98cd34d013075e027838
-
- Mar 17, 2018
-
-
maaikedieuwertje authored
Former-commit-id: 9505c80e546b58b9a4590284d9e32e71f6ba8df3
-
maaikedieuwertje authored
Former-commit-id: 902155ba14cc0794274a4e6b59f79ecaa5e60808
-
- Mar 16, 2018
-
-
maaikedieuwertje authored
Former-commit-id: 6b5733e29a415d1835977357b1906696d878b4dc
-
maaikedieuwertje authored
Former-commit-id: f1a99a6efa7c5ddcab961a45c903026c52190088
-
maaikedieuwertje authored
Former-commit-id: e81b6bbbee45f9d3b6ae243db9361a8fd36c2bb5
-
imcovangent authored
Former-commit-id: 47d7bb1005440d596ca3e186a13cca3ac57e0bf0
-