<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def draw(self,cov,num_reals=1,how="normal",enforce_bounds=None):
 """draw realizations of parameter values Parameters cov : pyemu.Cov covariance matrix that describes the support around the mean parameter values num_reals : int number of realizations to generate how : str distribution to use to generate realizations. Options are 'normal' or 'uniform'. Default is 'normal'. If 'uniform', cov argument is ignored enforce_bounds : str how to enforce parameter bound violations. Options are 'reset' (reset individual violating values), 'drop' (drop realizations that have one or more violating values. Default is None (no bounds enforcement) """

        how = how.lower().strip()
        if not self.istransformed:
                self._transform()
        if how == "uniform":
            self._draw_uniform(num_reals=num_reals)
        else:
            super(ParameterEnsemble,self).draw(cov,num_reals=num_reals)
            # replace the realizations for fixed parameters with the original
            # parval1 in the control file
            self.pst.parameter_data.index = self.pst.parameter_data.parnme
            fixed_vals = self.pst.parameter_data.loc[self.fixed_indexer,"parval1"]
            for fname,fval in zip(fixed_vals.index,fixed_vals.values):
                #if fname not in self.columns:
                #    continue
                self.loc[:,fname] = fval
        istransformed = self.pst.parameter_data.loc[:,"partrans"] == "log"
        self.loc[:,istransformed] = 10.0**self.loc[:,istransformed]
        self.__istransformed = False

        #self._applied_tied()


        self.enforce(enforce_bounds)