001package org.hl7.fhir.r4.model.codesystems;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Wed, Jan 30, 2019 16:19-0500 for FHIR v4.0.0
033
034import org.hl7.fhir.exceptions.FHIRException;
035
036public enum V3ActMood {
037
038  /**
039   * These are moods describing activities as they progress in the business cycle,
040   * from defined, through planned and ordered to completed.
041   */
042  _ACTMOODCOMPLETIONTRACK,
043  /**
044   * Definition: A possible act.
045   */
046  _ACTMOODPOTENTIAL,
047  /**
048   * Definition: A definition of a kind of act that can occur .
049   * 
050   * 
051   * OpenIssue: The semantic constructs embodied in DEF and CRT moods seem
052   * indistinguishable, and their uses can readily be determined by the context in
053   * which these are used. Therefore, this OpenIssue has been created to declare
054   * that it is likely that ActMood.DEF will be "retired" in the future in favor
055   * of the more general ActMood.CRT.
056   */
057  DEF,
058  /**
059   * Definition: A kind of act that defines a permission that has been granted.
060   */
061  PERM,
062  /**
063   * Definition: A kind of act that may occur during the specified time period.
064   */
065  SLOT,
066  /**
067   * Definition: An act that actually happens (may be an ongoing act or a
068   * documentation of a past act).
069   */
070  EVN,
071  /**
072   * Definition: An intention or plan for an act.
073   * 
074   * 
075   * >UsageNotes: The final outcome of the intent, the act that is intended to
076   * occur, is always an event. However the final outcome may be reached
077   * indirectly via steps through other intents, such as promise, permission
078   * request, or an appointment that may lead to an actual event to occur.
079   * Alternatively, the intended act may never occur.
080   */
081  INT,
082  /**
083   * Definition: A desire to have an act occur.
084   */
085  _ACTMOODDESIRE,
086  /**
087   * Definition: A request (or order) for an act that is part of a defined
088   * request/fulfillment cycle.
089   * 
090   * 
091   * UsageNotes: Use of an HL7 defined request/fulfillment framework is not
092   * required to use this mood code.
093   */
094  _ACTMOODACTREQUEST,
095  /**
096   * Definition: A request act that is specialized for the appointment scheduling
097   * request/fulfillment cycle. An appointment request is fulfilled only and
098   * completely by an appointment (APT), i.e., all that the appointment request
099   * intends is to create an appointment (the actual act may well not happen if
100   * that is the professional decision during the appointment).
101   */
102  ARQ,
103  /**
104   * Definition: A request for a permission to perform the act. Typically a payer
105   * (or possibly a supervisor) is being requested to give permission to perform
106   * the act. As opposed to the RQO, the requestee is not asked to perform or
107   * cause to perform the act but only to give the permission.
108   */
109  PERMRQ,
110  /**
111   * Definition: A request act that is specialized for an event
112   * request/fulfillment cycle.
113   * 
114   * 
115   * UsageNotes: The fulfillment cycle may involve intermediary fulfilling acts in
116   * moods such as PRMS, APT, or even another RQO before being fulfilled by the
117   * final event.
118   * 
119   * 
120   * UsageNotes: The concepts of a "request" and an "order" are viewed as
121   * different, because there is an implication of a mandate associated with
122   * order. In practice, however, this distinction has no general functional value
123   * in the inter-operation of health care computing. "Orders" are commonly
124   * refused for a variety of clinical and business reasons, and the notion of a
125   * "request" obligates the recipient (the fulfiller) to respond to the sender
126   * (the author). Indeed, in many regions, including Australia and Europe, the
127   * common term used is "request."
128   * 
129   * Thus, the concept embodies both notions, as there is no useful distinction to
130   * be made. If a mandate is to be associated with a request, this will be
131   * embodied in the "local" business rules applied to the transactions. Should
132   * HL7 desire to provide a distinction between these in the future, the
133   * individual concepts could be added as specializations of this concept.
134   * 
135   * The critical distinction here, is the difference between this concept and an
136   * "intent", of which it is a specialization. An intent involves decisions by a
137   * single party, the author. A request, however, involves decisions by two
138   * parties, the author and the fulfiller, with an obligation on the part of the
139   * fulfiller to respond to the request indicating that the fulfiller will indeed
140   * fulfill the request.
141   */
142  RQO,
143  /**
144   * Definition: A suggestion that an act might be performed. Not an explicit
145   * request, and professional responsibility may or may not be present.
146   */
147  PRP,
148  /**
149   * Definition: A suggestion that an act should be performed with an acceptance
150   * of some degree of professional responsibility for the resulting act. Not an
151   * explicit request. .
152   * 
153   * 
154   * UsageNotes: Where there is no clear definition or applicable concept of
155   * "professional responsibilityâ??, RMD becomes indistinguishable from PRP. .
156   */
157  RMD,
158  /**
159   * Definition: A commitment to perform an act (may be either solicited or
160   * unsolicited). The committer becomes responsible to the other party for
161   * executing the act, and, as a consequence, the other party may rely on the
162   * first party to perform or cause to perform the act.
163   * 
164   * 
165   * UsageNotes: Commitments may be retracted or cancelled.
166   */
167  PRMS,
168  /**
169   * Definition: An act that has been scheduled to be performed at a specific
170   * place and time.
171   */
172  APT,
173  /**
174   * Definition: An act that expresses condition statements for other acts.
175   */
176  _ACTMOODPREDICATE,
177  /**
178   * Deprecation Comment: This concept This codes should no longer be used.
179   * Instead, set attribute Act.isCriterionInd to "true" and use the desired mood
180   * for your criterion.
181   * 
182   * 
183   * Definition: A condition that must be true for the source act to be
184   * considered.
185   */
186  CRT,
187  /**
188   * Deprecation Comment: This concept This codes should no longer be used.
189   * Instead, set attribute Act.isCriterionInd to "true" and use the desired mood
190   * for your criterion.
191   * 
192   * 
193   * Definition: A criterion (CRT) that has_match = an event (EVN).
194   */
195  EVN_CRT,
196  /**
197   * A criterion expressed over goals (ActMood.GOL).
198   */
199  GOL_CRT,
200  /**
201   * A criterion expressed over intents (ActMood.INT).
202   */
203  INT_CRT,
204  /**
205   * A criterion expressed over promises (ActMood.PRMS).
206   */
207  PRMS_CRT,
208  /**
209   * A criterion expressed over requests or orders (ActMood.RQO).
210   */
211  RQO_CRT,
212  /**
213   * A criterion expressed over risks (ActMood.RSK).
214   */
215  RSK_CRT,
216  /**
217   * Definition: An act that is considered to have some noteworthy likelihood of
218   * occurring in the future (has_match = event).
219   * 
220   * 
221   * Examples:Prognosis of a condition, Expected date of discharge from hospital,
222   * patient will likely need an emergency decompression of the intracranial
223   * pressure by morning.
224   * 
225   * 
226   * UsageNotes:INT (intent) reflects a plan for the future, which is a
227   * declaration to do something. This contrasts with expectation, which is a
228   * prediction that something will happen in the future. GOL (goal) reflects a
229   * hope rather than a prediction. RSK (risk) reflects a potential negative event
230   * that may or may not be expected to happen.
231   */
232  EXPEC,
233  /**
234   * Definition: An expectation that is considered to be desirable to occur in the
235   * future
236   * 
237   * 
238   * Examples:Target weight below 80Kg, Stop smoking, Regain ability to walk, goal
239   * is to administer thrombolytics to candidate patients presenting with acute
240   * myocardial infarction.
241   * 
242   * 
243   * UsageNotes: INT (intent) reflects a plan for the future, which is a
244   * declaration to do something. This contrasts with goal which doesn't represent
245   * an intention to act, merely a hope for an eventual result. A goal is distinct
246   * from the intended actions to reach that goal. "I will reduce the dose of drug
247   * x to 20mg" is an intent. "I hope to be able to get the patient to the point
248   * where I can reduce the dose of drug x to 20mg" is a goal. EXPEC (expectation)
249   * reflects a prediction rather than a hope. RSK (risk) reflects a potential
250   * negative event rather than a hope.
251   */
252  GOL,
253  /**
254   * Definition:An act that may occur in the future and which is regarded as
255   * undesirable
256   * 
257   * 
258   * Examples:Increased risk of DVT, at risk for sub-acute bacterial endocarditis.
259   * 
260   * 
261   * UsageNotes:Note: An observation in RSK mood expresses the undesirable act,
262   * and not the underlying risk factor. A risk factor that is present (e.g.
263   * obesity, smoking, etc) should be expressed in event mood. INT (intent)
264   * reflects a plan for the future, which is a declaration to do something. This
265   * contrasts with RSK (risk), which is the potential that something negative
266   * will occur that may or may not ever happen. GOL (goal) reflects a hope to
267   * achieve something. EXPEC (expectation) is the prediction of a positive or
268   * negative event. This contrasts with RSK (risk), which is the potential that
269   * something negative will occur that may or may not ever happen, and may not be
270   * expected to happen.
271   */
272  RSK,
273  /**
274   * Definition: One of a set of acts that specify an option for the property
275   * values that the parent act may have. Typically used in definitions or orders
276   * to describe alternatives. An option can only be used as a group, that is, all
277   * assigned values must be used together. The actual mood of the act is the same
278   * as the parent act, and they must be linked by an actrelationship with type =
279   * OPTN.
280   */
281  OPT,
282  /**
283   * added to help the parsers
284   */
285  NULL;
286
287  public static V3ActMood fromCode(String codeString) throws FHIRException {
288    if (codeString == null || "".equals(codeString))
289      return null;
290    if ("_ActMoodCompletionTrack".equals(codeString))
291      return _ACTMOODCOMPLETIONTRACK;
292    if ("_ActMoodPotential".equals(codeString))
293      return _ACTMOODPOTENTIAL;
294    if ("DEF".equals(codeString))
295      return DEF;
296    if ("PERM".equals(codeString))
297      return PERM;
298    if ("SLOT".equals(codeString))
299      return SLOT;
300    if ("EVN".equals(codeString))
301      return EVN;
302    if ("INT".equals(codeString))
303      return INT;
304    if ("_ActMoodDesire".equals(codeString))
305      return _ACTMOODDESIRE;
306    if ("_ActMoodActRequest".equals(codeString))
307      return _ACTMOODACTREQUEST;
308    if ("ARQ".equals(codeString))
309      return ARQ;
310    if ("PERMRQ".equals(codeString))
311      return PERMRQ;
312    if ("RQO".equals(codeString))
313      return RQO;
314    if ("PRP".equals(codeString))
315      return PRP;
316    if ("RMD".equals(codeString))
317      return RMD;
318    if ("PRMS".equals(codeString))
319      return PRMS;
320    if ("APT".equals(codeString))
321      return APT;
322    if ("_ActMoodPredicate".equals(codeString))
323      return _ACTMOODPREDICATE;
324    if ("CRT".equals(codeString))
325      return CRT;
326    if ("EVN.CRT".equals(codeString))
327      return EVN_CRT;
328    if ("GOL.CRT".equals(codeString))
329      return GOL_CRT;
330    if ("INT.CRT".equals(codeString))
331      return INT_CRT;
332    if ("PRMS.CRT".equals(codeString))
333      return PRMS_CRT;
334    if ("RQO.CRT".equals(codeString))
335      return RQO_CRT;
336    if ("RSK.CRT".equals(codeString))
337      return RSK_CRT;
338    if ("EXPEC".equals(codeString))
339      return EXPEC;
340    if ("GOL".equals(codeString))
341      return GOL;
342    if ("RSK".equals(codeString))
343      return RSK;
344    if ("OPT".equals(codeString))
345      return OPT;
346    throw new FHIRException("Unknown V3ActMood code '" + codeString + "'");
347  }
348
349  public String toCode() {
350    switch (this) {
351    case _ACTMOODCOMPLETIONTRACK:
352      return "_ActMoodCompletionTrack";
353    case _ACTMOODPOTENTIAL:
354      return "_ActMoodPotential";
355    case DEF:
356      return "DEF";
357    case PERM:
358      return "PERM";
359    case SLOT:
360      return "SLOT";
361    case EVN:
362      return "EVN";
363    case INT:
364      return "INT";
365    case _ACTMOODDESIRE:
366      return "_ActMoodDesire";
367    case _ACTMOODACTREQUEST:
368      return "_ActMoodActRequest";
369    case ARQ:
370      return "ARQ";
371    case PERMRQ:
372      return "PERMRQ";
373    case RQO:
374      return "RQO";
375    case PRP:
376      return "PRP";
377    case RMD:
378      return "RMD";
379    case PRMS:
380      return "PRMS";
381    case APT:
382      return "APT";
383    case _ACTMOODPREDICATE:
384      return "_ActMoodPredicate";
385    case CRT:
386      return "CRT";
387    case EVN_CRT:
388      return "EVN.CRT";
389    case GOL_CRT:
390      return "GOL.CRT";
391    case INT_CRT:
392      return "INT.CRT";
393    case PRMS_CRT:
394      return "PRMS.CRT";
395    case RQO_CRT:
396      return "RQO.CRT";
397    case RSK_CRT:
398      return "RSK.CRT";
399    case EXPEC:
400      return "EXPEC";
401    case GOL:
402      return "GOL";
403    case RSK:
404      return "RSK";
405    case OPT:
406      return "OPT";
407    case NULL:
408      return null;
409    default:
410      return "?";
411    }
412  }
413
414  public String getSystem() {
415    return "http://terminology.hl7.org/CodeSystem/v3-ActMood";
416  }
417
418  public String getDefinition() {
419    switch (this) {
420    case _ACTMOODCOMPLETIONTRACK:
421      return "These are moods describing activities as they progress in the business cycle, from defined, through planned and ordered to completed.";
422    case _ACTMOODPOTENTIAL:
423      return "Definition: A possible act.";
424    case DEF:
425      return "Definition: A definition of a kind of act that can occur .\r\n\n                        \n                           OpenIssue: The semantic constructs embodied in DEF and CRT moods seem indistinguishable, and their uses can readily be determined by the context in which these are used. Therefore, this OpenIssue has been created to declare that it is likely that ActMood.DEF will be \"retired\" in the future in favor of the more general ActMood.CRT.";
426    case PERM:
427      return "Definition: A kind of act that defines a permission that has been granted.";
428    case SLOT:
429      return "Definition: A kind of act that may occur during the specified time period.";
430    case EVN:
431      return "Definition: An act that actually happens (may be an ongoing act or a documentation of a past act).";
432    case INT:
433      return "Definition: An intention or plan for an act. \r\n\n                        \n                           >UsageNotes: The final outcome of the intent, the act that is intended to occur, is always an event. However the final outcome may be reached indirectly via steps through other intents, such as promise, permission request, or an appointment that may lead to an actual event to occur. Alternatively, the intended act may never occur.";
434    case _ACTMOODDESIRE:
435      return "Definition:  A desire to have an act occur.";
436    case _ACTMOODACTREQUEST:
437      return "Definition: A request (or order) for an act that is part of a defined request/fulfillment cycle.\r\n\n                        \n                           UsageNotes: Use of an HL7 defined request/fulfillment framework is not required to use this mood code.";
438    case ARQ:
439      return "Definition: A request act that is specialized for the appointment scheduling request/fulfillment cycle. An appointment request is fulfilled only and completely by an appointment (APT), i.e., all that the appointment request intends is to create an appointment (the actual act may well not happen if that is the professional decision during the appointment).";
440    case PERMRQ:
441      return "Definition: A request for a permission to perform the act. Typically a payer (or possibly a supervisor) is being requested to give permission to perform the act. As opposed to the RQO, the requestee is not asked to perform or cause to perform the act but only to give the permission.";
442    case RQO:
443      return "Definition: A request act that is specialized for an event request/fulfillment cycle. \r\n\n                        \n                           UsageNotes: The fulfillment cycle may involve intermediary fulfilling acts in moods such as PRMS, APT, or even another RQO before being fulfilled by the final event. \r\n\n                        \n                           UsageNotes: The concepts of a \"request\" and an \"order\" are viewed as different, because there is an implication of a mandate associated with order.  In practice, however, this distinction has no general functional value in the inter-operation of health care computing.  \"Orders\" are commonly refused for a variety of clinical and business reasons, and the notion of a \"request\" obligates the recipient (the fulfiller) to respond to the sender (the author).  Indeed, in many regions, including Australia and Europe, the common term used is \"request.\"\r\n\n                        Thus, the concept embodies both notions, as there is no useful distinction to be made.  If a mandate is to be associated with a request, this will be embodied in the \"local\" business rules applied to the transactions.  Should HL7 desire to provide a distinction between these in the future, the individual concepts could be added as specializations of this concept.\r\n\n                        The critical distinction here, is the difference between this concept and an \"intent\", of which it is a specialization.  An intent involves decisions by a single party, the author.  A request, however, involves decisions by two parties, the author and the fulfiller, with an obligation on the part of the fulfiller to respond to the request indicating that the fulfiller will indeed fulfill the request.";
444    case PRP:
445      return "Definition: A suggestion that an act might be performed. Not an explicit request, and professional responsibility may or may not be present.";
446    case RMD:
447      return "Definition: A suggestion that an act should be performed with an acceptance of some degree of professional responsibility for the resulting act. Not an explicit request. .\r\n\n                        \n                           UsageNotes: Where there is no clear definition or applicable concept of \"professional responsibilityâ??, RMD becomes indistinguishable from PRP. .";
448    case PRMS:
449      return "Definition: A commitment to perform an act (may be either solicited or unsolicited). The committer becomes responsible to the other party for executing the act, and, as a consequence, the other party may rely on the first party to perform or cause to perform the act.\r\n\n                        \n                           UsageNotes: Commitments may be retracted or cancelled.";
450    case APT:
451      return "Definition: An act that has been scheduled to be performed at a specific place and time.";
452    case _ACTMOODPREDICATE:
453      return "Definition: An act that expresses condition statements for other acts.";
454    case CRT:
455      return "Deprecation Comment: \n                           This concept This codes should no longer be used.  Instead, set attribute Act.isCriterionInd to \"true\" and use the desired mood for your criterion.\r\n\n                        \n                           Definition: A condition that must be true for the source act to be considered.";
456    case EVN_CRT:
457      return "Deprecation Comment: \n                           This concept This codes should no longer be used.  Instead, set attribute Act.isCriterionInd to \"true\" and use the desired mood for your criterion.\r\n\n                        \n                           Definition: A criterion (CRT) that has_match = an event (EVN).";
458    case GOL_CRT:
459      return "A criterion expressed over goals (ActMood.GOL).";
460    case INT_CRT:
461      return "A criterion expressed over intents (ActMood.INT).";
462    case PRMS_CRT:
463      return "A criterion expressed over promises (ActMood.PRMS).";
464    case RQO_CRT:
465      return "A criterion expressed over requests or orders (ActMood.RQO).";
466    case RSK_CRT:
467      return "A criterion expressed over risks (ActMood.RSK).";
468    case EXPEC:
469      return "Definition: An act that is considered to have some noteworthy likelihood of occurring in the future (has_match = event).\r\n\n                        \n                           Examples:Prognosis of a condition, Expected date of discharge from hospital, patient will likely need an emergency decompression of the intracranial pressure by morning.\r\n\n                        \n                           UsageNotes:INT (intent) reflects a plan for the future, which is a declaration to do something. This contrasts with expectation, which is a prediction that something will happen in the future. GOL (goal) reflects a hope rather than a prediction. RSK (risk) reflects a potential negative event that may or may not be expected to happen.";
470    case GOL:
471      return "Definition: An expectation that is considered to be desirable to occur in the future \r\n\n                        \n                           Examples:Target weight below 80Kg, Stop smoking, Regain ability to walk, goal is to administer thrombolytics to candidate patients presenting with acute myocardial infarction.\r\n\n                        \n                           UsageNotes: INT (intent) reflects a plan for the future, which is a declaration to do something.  This contrasts with goal which doesn't represent an intention to act, merely a hope for an eventual result.  A goal is distinct from the intended actions to reach that goal.  \"I will reduce the dose of drug x to 20mg\" is an intent.  \"I hope to be able to get the patient to the point where I can reduce the dose of drug x to 20mg\" is a goal. EXPEC (expectation) reflects a prediction rather than a hope. RSK (risk) reflects a potential negative event rather than a hope.";
472    case RSK:
473      return "Definition:An act that may occur in the future and which is regarded as undesirable \r\n\n                        \n                           Examples:Increased risk of DVT, at risk for sub-acute bacterial endocarditis.\r\n\n                        \n                           UsageNotes:Note: An observation in RSK mood expresses the undesirable act, and not the underlying risk factor. A risk factor that is present (e.g. obesity, smoking, etc) should be expressed in event mood. INT (intent) reflects a plan for the future, which is a declaration to do something. This contrasts with RSK (risk), which is the potential that something negative will occur that may or may not ever happen. GOL (goal) reflects a hope to achieve something. EXPEC (expectation) is the prediction of a positive or negative event. This contrasts with RSK (risk), which is the potential that something negative will occur that may or may not ever happen, and may not be expected to happen.";
474    case OPT:
475      return "Definition: One of a set of acts that specify an option for the property values that the parent act may have. Typically used in definitions or orders to describe alternatives. An option can only be used as a group, that is, all assigned values must be used together. The actual mood of the act is the same as the parent act, and they must be linked by an actrelationship with type = OPTN.";
476    case NULL:
477      return null;
478    default:
479      return "?";
480    }
481  }
482
483  public String getDisplay() {
484    switch (this) {
485    case _ACTMOODCOMPLETIONTRACK:
486      return "ActMoodCompletionTrack";
487    case _ACTMOODPOTENTIAL:
488      return "potential";
489    case DEF:
490      return "definition";
491    case PERM:
492      return "permission";
493    case SLOT:
494      return "resource slot";
495    case EVN:
496      return "event (occurrence)";
497    case INT:
498      return "intent";
499    case _ACTMOODDESIRE:
500      return "desire";
501    case _ACTMOODACTREQUEST:
502      return "act request";
503    case ARQ:
504      return "appointment request";
505    case PERMRQ:
506      return "permission request";
507    case RQO:
508      return "request";
509    case PRP:
510      return "proposal";
511    case RMD:
512      return "recommendation";
513    case PRMS:
514      return "promise";
515    case APT:
516      return "appointment";
517    case _ACTMOODPREDICATE:
518      return "ActMoodPredicate";
519    case CRT:
520      return "criterion";
521    case EVN_CRT:
522      return "event criterion";
523    case GOL_CRT:
524      return "goal criterion";
525    case INT_CRT:
526      return "intent criterion";
527    case PRMS_CRT:
528      return "promise criterion";
529    case RQO_CRT:
530      return "request criterion";
531    case RSK_CRT:
532      return "risk criterion";
533    case EXPEC:
534      return "expectation";
535    case GOL:
536      return "Goal";
537    case RSK:
538      return "risk";
539    case OPT:
540      return "option";
541    case NULL:
542      return null;
543    default:
544      return "?";
545    }
546  }
547
548}