Commit Graph

175 Commits (e36516f76699d9df18344df92f73d62ca681538a)

Author SHA1 Message Date
Sébastien Villemot d860763122 Preprocessor: minor cosmetic changes related to external functions 2010-02-23 19:08:54 +01:00
Houtan Bastani 12c4a52ebc Add support for external functions 2010-02-23 18:15:18 +01:00
houtanb 77897d691e expectation conditional on a restricted information set
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3367 ac1d8469-bf42-47a9-8791-bf33cf982152
2010-01-18 22:08:44 +00:00
ferhat 46e144ad80 Add new model option no_static : avoid to compute the static model. Useful for models without steady-state.
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3319 ac1d8469-bf42-47a9-8791-bf33cf982152
2010-01-08 11:06:25 +00:00
sebastien e6f1a53e60 Beautified preprocessor code (uncrustify + emacs + manual adjustments, in particular with templates in MacroValue)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3249 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-16 17:13:23 +00:00
sebastien aa23ed73e9 preprocessor + bytecode DLL: various enhancements to block and bytecode options (changes by Ferhat)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3244 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-16 13:21:31 +00:00
houtanb 271297a446 changed preprocessor internals to support vector<int> type. changed svar_identification to store symbols by symbol ids. Added missing Doxygen comments.
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3240 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-14 15:54:00 +00:00
houtanb fe723f0dab allow for vector <int> to be passed by Bison and modified processing of svar statement accordingly.
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3221 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-10 22:49:50 +00:00
houtanb 203c6582ba svar: allow for two options to be passed instead of only three.
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3218 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-09 16:32:30 +00:00
houtanb 16e1bb2ef0 swz: implementation of svar
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3214 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-09 00:38:53 +00:00
houtanb a2f878a179 swz: markov switching statement
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3212 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-08 16:46:13 +00:00
houtanb 965c743537 swz: svar_identification
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3194 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-04 21:32:19 +00:00
sebastien ee3ceb7db6 M-files and preprocessor:
* removed "options_.simul", and instead test if "options_.periods" is non-zero
* test for the incompatibility of options "periods" and "hp_filter" in "stoch_simul.m", instead of in the preprocessor
Reference manual:
* removed "simul" options, updated "periods"
* updated "order" option (for 3rd order)
* added "k_order_solver" option
* give some hints for installing a compiler for users of MATLAB for Windows


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3188 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-01 17:51:47 +00:00
sebastien af732433d7 predetermined_variables:
* reworked a little bit the implementation
* documented the command in the reference manual
* added a test


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3143 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-09 11:03:18 +00:00
houtanb 26185780ac implements predetermined_variables operator
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3137 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-07 18:37:11 +00:00
sebastien ffd9b2d405 preprocessor: clean-up workaround for acosh(), asinh(), atanh() on Win 64 platforms
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3101 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-29 17:16:10 +00:00
sebastien dbc9e0996d * Preprocessor: implemented interface to conditional forecast, with three new statements: "conditional_forecast", "conditional_forecast_paths" and "plot_conditional_forecast"
* Reference manual: created a section on forecasting (with "forecast" option), and added the three new statements to that section


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3049 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-16 17:23:57 +00:00
sebastien dc49fbffdc Preprocessor:
* new options to "identification" statement: "ar", "useautocorr", "load_ident_files", "prior_mc"
* implement the call to dynare_identification() when "identification" statement is encountered
* new options to "dynare_sensitivity" statement: "ar", "useautocorr", "load_ident_files"
* trigger computation of model derivatives w.r. to parameters when "identification" option of "dynare_sensitivity" statement is used


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3046 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-14 16:16:43 +00:00
sebastien c84df1aace preprocessor: in stochastic mode, create auxiliary variables for exogenous with non-zero lead/lag
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3026 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-07 14:07:13 +00:00
houtanb e08fa1f618 added steady_state operator to preprocessor
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2916 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-10 20:09:16 +00:00
sebastien 579b5f509e Cleanup "cutoff" and "mfs" options (the former is no longer in options_)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2888 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-03 10:10:06 +00:00
sebastien 71f5e527e6 Remove obsolete "cutoff" and "markowitz" statements
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2884 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-03 09:50:45 +00:00
ferhat 164eb22f87 - get rid of block and bytcode variable in SimulStatement and StochSimulStatement
- minimalist version of dynamicmodel when no dynamic model is needed

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2883 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-02 16:44:15 +00:00
sebastien 9a1339ad11 Added support for equation tags (thanks to Pablo for providing a patch)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2880 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-02 14:37:59 +00:00
sebastien a56de57637 Various cleanups related to new options "bytecode" and "block"
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2879 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-02 13:36:56 +00:00
ferhat ed6cda0ca1 New options for block decomposition and bytecode (see http://www.dynare.org/DynareWiki/ByteCode):
- the options "sparse_dll" and "sparse" are no more available. They are replaced by combinations of block (for block decomposition) and bytecode (for model stored in a binary file)
- markowitz is now an option of simul and steady commands


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2873 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-08-29 15:04:11 +00:00
ferhat d32dd99210 - extension of normalization of equations to nonlinear equations
- mfs: new option for 'steady' and 'model' commands. Determines the equation belonging to the set of feedback variables.
  mfs = 0 => all variables are considered as feedback variables (default value)
  mfs = 1 => using only naturally normalized equation as potential recursive equations (all variables assigned to unnormalized equations are considered as feedback variable)
  mfs = 2 => adding to the set of potential recursive equation with mfs = 1 the linear equation in endogenous variable normalized (all variables assigned to nonlinear unnormalized equations are considered as feedback variable)
  mfs = 3 => adding to the set of potential recursive equation with mfs = 2 the non linear equation in endogenous variable normalized
- correction of few buggs in simulate.dll
- block_mfs_dll: new option for 'steady' command. Use simulate.dll to solve the steady state model (speedup the computation of the steady-state and the homotopy)

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2866 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-08-25 09:43:01 +00:00
michel a2448f6394 v4: adding preprocessor interface to Sims-Wagonner-Zha code for SBVAR (regular and Markov-Switching).
This is not yet completely operational.


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2855 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-26 17:07:07 +00:00
michel ef26fae773 v4: adding interface for shock decomposition
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2853 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-23 08:31:48 +00:00
sebastien b0f252c2f4 Some restructurings in the preprocessor:
* StaticModel: dropped creation of C file in USE_DLL mode
* StaticModel: added computation of derivatives for block MFS mode
* DynamicModel: catch error codes of mkdir()
* ModelTree: moved "mode" member variable to DynamicModel
* ModFile::writeOutput(): moved manipulations relative to dynamic model file to DynamicModel


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2818 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-07 14:20:48 +00:00
sebastien 44c864f9f7 trunk preprocessor: added new statements "write_latex_dynamic_model" and "write_latex_static_model" which list model equations in LaTeX code
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2654 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-30 13:14:33 +00:00
sebastien b775f1812c trunk preprocessor:
* added support for derivatives of Hessian w.r. to parameters
* added "identification" command which does nothing for the moment, except triggering those derivatives w.r. to params


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2613 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-20 13:58:15 +00:00
sebastien 03ce535f04 trunk preprocessor:
* enforce lag=0 for DataTree and StaticModel
* various minor and cosmetic changes


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2596 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-16 10:33:30 +00:00
sebastien da408a908f trunk preprocessor: some cleanups related to sparse mode (removed SimulSparseStatement class and incorporated it into SimulStatement, determine mode at preprocessing time instead of runtime in StochSimulStatement)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2595 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-14 15:02:51 +00:00
sebastien 6dc870727d trunk preprocessor:
* created a distinct expression tree for the static model (thus giving better sharing of sub-expressions and better computation of temporary terms for the static model)
* for that purpose, created StaticModel and DynamicModel classes (ModelTree still persists, but only contains code shared between StaticModel and DynamicModel)
* removed sparse static file (to be later replaced by new algorithm for steady state computation on large models)


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2592 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-14 14:39:53 +00:00
sebastien a3485ac69a trunk preprocessor: added new "change_type" command
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2452 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-03-11 11:43:18 +00:00
sebastien 4005d25f25 trunk preprocessor:
* reorganized symbol table so that internally symbols have a unique integer ID (as a result, sparse code is temporarily in a broken state)
* rewritten from scratch ModFile::evalAllExpressions()
* {load,save}_params_and_steady_state moved to NumericalInitialization.{cc,hh}
* fixed bug related to endval block


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2441 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-02-27 12:19:25 +00:00
sebastien 8e75f758e6 trunk: allow the possibility of modifying Matlab matrices which have been earlier used in initval/endval
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2437 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-02-26 10:46:54 +00:00
sebastien 596d2a801d trunk preprocessor: fixed a memory management bug related to the filename being parsed
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2412 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-02-12 13:38:01 +00:00
sebastien 723b260f9f trunk preprocessor: automatic reindentation of all code with emacs
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2372 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-01-23 10:59:37 +00:00
sebastien e98844dc61 trunk preprocessor: allow arbitrary expressions (and not just constants) in estimated_params, estimated_params_init and estimated_params_bounds blocks
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2368 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-01-22 15:05:38 +00:00
sebastien 2495aca72a trunk:
* updated copyright headers of all files modified since January 1st: the copyright notice now encompasses 2009
* fixed various other copyright header issues


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2364 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-01-21 14:39:24 +00:00
ferhat 4fe7e3e155 - SymbolGaussElim.cc is discarded from the preprocessor (all simulations are now implemented in simulate)
- Correction in model_info.m

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2358 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-01-20 22:04:37 +00:00
ferhat a0bbe27b95 Load_params_and_steady_state is now a dynare command -> needed to normalize the equations.
-> MatlabFile.cc and MatlabFile.hh are added to dynare in order to read the Mat-File

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2349 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-12-31 19:29:17 +00:00
ferhat 29ca49f885 - Correction of several bugs in sparse_dll
- Pound expressions accepted with sparse option


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2329 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-12-19 10:24:31 +00:00
ferhat f904a1a19d - new Incidence_Matrix class
- lead and lag on exogenous variables
- corrections in dr1_sparse and dr11_sparse
- minor corrections in simulate

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2255 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-11-14 16:07:47 +00:00
sebastien e0fecf369e trunk: fixed preprocessor crash when there is an unexpected end of file
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2234 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-11-04 09:14:58 +00:00
sebastien 6a3b09c2b4 trunk preprocessor: fixed bug when both "simul" and "periods" options are given to stoch_simul
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2232 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-11-03 16:35:40 +00:00
sebastien 8bbc105fba trunk preprocessor: for better compliance with C standard:
* replaced all occurrences of "exit(-1)" by "exit(EXIT_FAILURE)"
* return EXIT_SUCCESS at the end of main()


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2229 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-29 15:33:16 +00:00
sebastien d46c423c6e trunk preprocessor: removed LCC_COMPILER and GCC_COMPILER options of SPARSE_DLL mode
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2177 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-17 17:21:22 +00:00
sebastien d1e5b0d4b8 trunk preprocessor: added error message if model local variable (pound sign expression) used outside model scope
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2168 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-17 12:22:35 +00:00
sebastien cc64a40ac7 trunk preprocessor: renamed "Type" to "SymbolType" for the sake of clarity
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2166 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-17 10:20:19 +00:00
sebastien 61e307d737 trunk preprocessor:
* forbid lead/lag on model local variables (constructed with pound sign)
* forbid unknown function names in model block
* code simplication


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2147 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-13 16:44:20 +00:00
sebastien 73c513802f trunk:
* DynareBison.yy: use "filename" rule for initval_file, dynasave, dynatype and datafile option
* DynareBison.yy: removed some spurious syntaxes for dynatype and dynasave
* ComputingTasks.cc: bugfix for dynatype
* cosmetic changes to dynatype.m and dynasave.m


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2145 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-10-13 16:06:07 +00:00
sebastien 919c2af259 trunk:
* added back model_comparison logic
* added QUOTED_STRING token in lexer
* added filename rule in parser (filename is NAME or QUOTED_STRING)


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2115 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-09-26 16:24:13 +00:00
sebastien 80c86e23ed v4.1 preprocessor:
* refactored code for the standard normcdf()
* cosmetic changes


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2035 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-09-04 08:10:42 +00:00
ferhat 6a3d20452b Minor corrections:
- Bug in check.m with model without sparse options
- Display in simulate.dll
- "Model_InfoStatement" renamed "Model_InfoStatement" in ComputingTasks

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2010 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-08-29 12:31:25 +00:00
ferhat 3f047dab9c - Bugs and memory leak correction
- implementation of model_info command

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2007 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-08-28 13:20:34 +00:00
sebastien 2a7ee3d056 v4 preprocessor:
* DynareBison.yy: added missing declaration of MODEL_INFO as a token
* various cosmetic changes


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1995 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-08-25 16:45:39 +00:00
ferhat 3bcff08e87 - Bugs corrections in deterministic simulation with sparse option
- Check allowed with sparse option
- New command "MODEL_INFO" providing informations about the block structure of the model
- Memory leak corrections

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1993 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-08-25 15:06:36 +00:00
sebastien 5ef425857a v4 preprocessor mex: various minor fixed to ensure correct compilation under g++ 4.3
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1906 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-06-28 11:20:45 +00:00
michel 1fc2c7a9f1 v4: added forecast, updated dynare_m.exe
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1812 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-05-01 12:04:48 +00:00
sebastien fcc7233a37 v4 preprocessor:
* fixed bug in InitValFile statement (typo in Matlab option name)
* various cosmetic changes


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1798 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-14 09:17:15 +00:00
michel 74fb4a04c5 v4: fixing initvalf
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1795 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-14 07:22:10 +00:00
michel 40a049c359 v4 preprocessor: corrected bug with initval_file
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1793 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-11 19:24:19 +00:00
michel 48166a9c96 v4 preprocessor: added syntax (:) for all variables in
option_lists
                 updated matlab/dynare_m.exe


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1792 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-11 14:41:52 +00:00
sebastien f68dba509d v4 preprocessor:
* renamed TmpSymbolTable to SymbolList (with some clean up by the way)
* removed unused mechanism of alternative variable names in tmp_var_list
* OptionsList: fixed memory leak and bug in clear()


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1785 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-07 13:14:40 +00:00
michel 1867caa5b0 v4 preprocessor: adding list of strings as option type
added some options for GSA

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1781 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-04 18:40:20 +00:00
sebastien dc57439e43 v4 matlab+preprocessor: allow syntax of homotopy_setup without initial value
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1779 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-04-03 16:22:52 +00:00
sebastien 367948e4db v4 matlab+preprocessor: the three homotopy modes should now work
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1769 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-03-31 16:19:16 +00:00
sebastien 8e4374ad10 v4 preprocessor: another minor tweak
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1752 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-03-28 17:38:10 +00:00
sebastien b155cb56ba v4 preprocessor: minor improvement related to debugging of scanning & parsing
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1751 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-03-28 17:21:45 +00:00
sebastien efeeb01b33 v4 preprocessor: fixed memory management error
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1723 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-02-29 16:20:19 +00:00
sebastien 567a518b4a v4 preprocessor: fixed minor memory leak
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1698 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-02-08 11:34:10 +00:00
michel ba0b58dfab v4: changing name of preprocessor directory
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1686 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-02-03 10:28:36 +00:00