The majority of current systems for end-to-end dialog generation focus on response quality without an explicit control over the affective content of the responses. In this paper, we present an affect-driven dialog system, which generates emotional responses in a controlled manner using a continuous representation of emotions. The system achieves this by modeling emotions at a word and sequence level using: (1) a vector representation of the desired emotion, (2) an affect regularizer, which penalizes neutral words, and (3) an affect sampling method, which forces the neural network to generate diverse words that are emotionally relevant. During inference, we use a re-ranking procedure that aims to extract the most emotionally relevant responses using a human-in-the-loop optimization process. We study the performance of our system in terms of both quantitative (BLEU score and response diver-sity), and qualitative (emotional appropriateness) measures. Recent breakthroughs in deep learning techniques have had an impact on end-to-end conversational systems (Chen et al., 2017). Current research is mainly focused on functional aspects of conversational systems: keyword extraction, natural language understanding, and pertinence of generated responses (Ilievski et al., 2018). Although these aspects are indeed key features for building a commercial system, most existing solutions lack social intelligence. Conversational systems could bene-fit from incorporating social intelligence by: (1) avoiding interaction problems that may arise when the system does not understand the user's request (e.g., inappropriate responses that cause user anger) (Maslowski et al., 2017), and (2) building rapport  Both authors contributed equally to this work. with the user (Strohkorb et al., 2016). Our method makes such conversational systems more social by outputting responses expressing emotion in a controlled manner, without sacrificing grammatical correctness, coherence, or relevance. Existing sequence-to-sequence (seq2seq) architectures, either recurrent(Sordoni et al., 2015; Serban et al., 2015), attention(Vaswani et al., 2017) or convolutional neural network (CNN)-based (Fan et al., 2018), do not provide a straightforward way to generate emotionally relevant output in a controlled manner. We introduce EMOTIonal CONversational System (EMOTICONS), which generates emotion-specific responses. It is based on novel contributions presented in this paper which fall in two main categories: explicit models which allow a controlled emotion-based response generation (e.g., methods based on emotion embeddings, affective sampling, and affective re-ranking), and implicit models with no direct control over the desired emotion (i.e., affective regularizer). We show that EMOTICONS outperforms both the system proposed by Zhou et al. (2018) (current state of the art for our task) and the vanilla seq2seq in terms of BLEU score (Papineni et al., 2002) (improve-ment up to 7 . 7% ) and response diversity (improve-ment up to 52% ). Additionally, we qualitatively evaluate the emotional content of the generated text (see example responses in Table 1). The user study (22 people) demonstrates that EMOTICONS is able to generate grammatically correct, coherent, emotionally-rich text in a controlled manner. Sequence-to-sequence (seq2seq) models have attracted a lot of attention in the past few years, especially in the fields of Neural Machine Translation (Sutskever et al., 2014; Bahdanau et al., 2014) and Neural Dialogue Generation (Sordoni et al., 2015; Vinyals and Le, 2015; Serban et al., 2015). Prior work has focused on designing architectures that lead to the best performance in terms of BLEU (Papineni et al., 2002) and Perplexity scores. Most seq2seq models are based on gated recurrent neural networks, either Long Short Term Memory (LSTM) (Hochreiter and Schmidhu-ber, 1997) or Gated Recurrent Unit (GRU) (Serban et al., 2015), but in general it is difficult to conclude which gating mechanism performs better (Chung et al., 2014). In our model, we use GRU because it has fewer parameters to optimize, and it is faster to train. In order to overcome the problem of generating trivial or mundane responses, there have been developments in inference techniques for encoder-decoder systems. Use of beam search has been shown to improve the general quality of generated answers, while Maximum Mutual Information (MMI) (Li et al., 2016) has improved the diversity of generated answers, leading to more meaningful output. We build on these techniques during affective inference. Emotion-based (affective) dialog generation systems have received increasing attention in the past few years. Huang et al. (2018) use emotion tokens (special words in a dictionary representing specific emotions) at either the encoder or decoder side, forcing the decoder to output a sentence with one specific emotion. Zhou et al. (2018) build their system using external and internal memory, where the former forces the network to generate emotional words, and the latter measures how emotional a generated sequence is compared to a target sequence. Lubis et al. (2018) modeled emotions in Valence-Arousal (VA) space for response generation. We extend this idea by using a Valence-Arousal-Dominance (VAD) Lexicon (Mohammad, 2018), as it has been shown by Broekens (2012) that the third dimension (Dominance) is useful for modeling affect. Asghar et al. (2017) used the VAD Lexicon, but they let the neural network choose the emotion to generate (by maximizing or minimizing the affective dissonance) and their system cannot generate different emotional outputs for the same input, nor generate a specified emotion. Our system (see overview in Figure 1) is divided into three main components: (1) Emotion Labeling  automatic labeling of sentences according to the emotional content they express, using an emotion classifier (3.2.1); labeling of words with VAD Lexicon values (4.2), (2) Affective Training  training of two seq2seq networks, which use an encoder-decoder setting. The first network is trained with prompt-response pairs (S-T), whereas the second (used during Affective Inference) is trained with reversed pairs (T-S), (3) Affective Inference  generation of many plausible responses, which are re-ranked based on emotional content. Let V = { w 1 , w 2 , . . . , w | V | } be a vocabulary, and X = ( x 1 , x 2 , . . . , x |X| ) a sequence of words (e.g. a sentence). We denote EX  R 6 as an emotion vector representing a probability distribution over six emotions associated with the sequence X : EX =   p anger p surprise p joy p sadness p fear p disgust   Note that in this work we focus on six basic emotions proposed by Paul Ekman (Ekman et al., 1983) but the techniques we develop are general and can be extended to a more fine grained list of emotions. X can be an input sequence, candidate response, final response, or target response (denoted respectively as S , RC , R final , R 0 ). We introduce E 0 , which during training, is the representation of the emotion of the target response ( R 0 ). During testing, E 0 indicates a desired emotion for the final response ( R final ), and can be set manually. For Reversedseq2seq Affective Re-ranking Vanilla seq2seq: Of course. example, in the case of anger', E 0 would be a one-hot vector with 1 at the first position, and 0 elsewhere. In our work, we extend the standard seq2seq model (Sutskever et al., 2014), that predicts the final response R final = argmax RC p ( RC | S ) . The proposed affective system aims to extend the inference mechanism by incorporating emotions encoded in E 0 : R final = argmax RC p ( RC | S, E 0 ) (1) 3.2 Affect Modeling We extend the standard seq2seq architecture by including emotion-specific information during the training and the inference. A critical challenge in both generating and evaluating responses is a reliable assessment of emotional state. We use two representations of emotion: (1) a categorical representation with six emotions (anger, surprise, joy, sadness, fear, disgust), and (2) a continuous representation in a VAD space. The latter uses a VAD Lexicon introduced by Mohammad (2018), where each of 20k words is mapped to a 3D vector of VAD values, ranging from 0 (lowest) to 1 (highest) ( v  [0 , 1] 3 ). Valence measures the posi-tivity/negativity, Arousal the excitement/calmness, and Dominance the powerfulness/weakness of the emotion expressed by a word. This expands the work of Lubis et al. (2018), who modeled emotions only in VA space. In the following sections we describe different versions of the proposed model. Affective training requires E 0 , the emotion representation of the target sequence. In order to label all sentences of the corpus with E 0 , we use an Emotion Classifier by Witon et al. (2018). The classifier predicts a probability distribution over class of six emotions. The classifier predictions for Cornell Movie-Dialogs Corpus (Cornell) have been shown to be highly correlated with human predictions (Witon et al., 2018). To explicitly generate responses with emotion, this version of the model includes an emotion embedding at the encoder side. We feed the encoder with S (cid:48) = ( e SEE , s 1 , s 2 , . . . , s | S | ) , where e SEE = ASEEE 0 is an Emotion Embedding ( e SEE  R 3 ), and ASEE  R 3  6 is a mapping (learned during training) from E 0 into an emotion embedding space. Another way of forcing an emotional output is to explicitly indicate the target emotion at every step in decoding along with other inputs. Formally, the GRU hidden state at time t is calculated as h t = f ( h t  1 , r (cid:48) t ) with r (cid:48) t = [ r t  1 ; e SED ] , where e SED is defined similarly as e SEE . It is worth noting that ASEE and ASED are different, which implies that the emotion embedding spaces they map to are also different. Compared to a similar approach introduced by Huang et al. (2018), our solution enables the desired emotional content, E 0 , to be provided in a continuous space. To model the word-level emotion carried by each sequence, we introduce an Affective Regularizer (AR), which expresses the affective distance between R final and R 0 , in the VAD space. It forces the neural network to prefer words in the vocabulary that carry emotions in terms of VAD. Mathematically, we extend the regular Negative Log Likelihood (NLL) loss with an affective regularizer, LAR : L = LNLL + LAR =  log p ( R final |S ) +  LVAD ( R final , R 0 ) LVAD ( R final , R 0 ) = (cid:13)(cid:13)(cid:13)(cid:13)(cid:13)(cid:13) |R final | (cid:88) t =1 EVAD s t |R final |  |R 0 | (cid:88) t =1 e VAD r 0 t |R 0 | (cid:13)(cid:13)(cid:13)(cid:13)(cid:13)(cid:13) , where s t = softmax( h t ) ( s t  R | V | ) is a confidence of the system of generating words w 1 , . . . , w | V | at time t and   R . e VAD x  R 3 is a 3D vector representing emotion associated with a word x in VAD space (note that e VAD x is constant with respect to t ), and EVAD  R 3 | V | is a matrix containing e VAD w v for all | V | words in the vocabulary: EVAD = (cid:104) e VAD w 1 ; . . . ; e VAD w | V | (cid:105) Intuitively, the regularizer penalizes the deviation of the emotional content of the generated response, R final , from the desired response, R 0 . The emotional information carried by R final is the weighted sum of emotion representations e VAD w i for all words w i in the vocabulary, where the weights are determined by the confidence s t . Sequential word generation allows sampling of the next word, based on the emotional content of the current incomplete sequence. If some words in a sequence do not express the target emotion E 0 , other words can compensate for this by changing the final affective content, e.g., in a sentence I think that the cat really loves me!, the first 6 words are neutral, whereas the end of the sentence make it clearly express joy. We incorporate this observation by explicitly generating the next word using an Adaptive Affective Sampling Method: log p ( RC |S , E 0 ) = |R C | (cid:88) t =1 log p ( r t | r <t , e r <t , h S , E 0 ) , p ( r t | r <t , e r <t , h S , E 0 ) =  softmax g ( h t ) + (1   ) softmax v ( EVAD t ) , where g ( h t ) is a linear mapping from GRU hidden state h t to an output vector of size | V | , and 0    1 is learned during training. The first term in Equation 3.2.5 is responsible for generating words according to a language model preserving grammatical correctness of the sequence, whereas the second term forces generation of words carrying emotionally relevant content. EVAD t  R 3 is a vector representing the remaining emotional content needed to match a goal ( EVAD 0 ) after generating all words up to time t . It is updated every time a new word r t with an associated emotion vector e VAD r t is generated: EVAD t = EVAD t  1  e VAD r t  1 EVAD 0 =   |R 0 | (cid:80) t =1 e VAD r 0 t , training MVADE 0  max length , inference where e VAD r 0 t is an emotion vector associated with words r 0 t in the target sequence, max length is a maximum length set for the seq2seq model, and MVAD  R 3  6 is a mapping from six-dimensional emotion space into VAD space (every emotion has a VAD vector as introduced by Hoffmann et al. (2012), scaled to a range [0, 1]): a ng e r s u r p r i s e j oy s a dn e ss f ea r d i s gu s t (cid:34) 0 1 1 0 0 0 (cid:35) V MVAD = 1 1 1 0 1 0 . v ( EVAD t ) is a vector, whose i-th component measures the potential remaining emotional content of the sequence in the case of choosing the i-th word w i : In the following, we set a constant  = 1 after generating the first max length / 2 words, as this setting ensures that the first generated words carry the right emotional content, while not sacrificing the grammatical correctness of the whole response. This leads to an improvement in performance. The methods described in the previous sections aim to improve the seq2seq training/sampling procedure. We hypothesize that a good inference strategy is crucial for generating diverse and emotion-specific responses. As Li et al. (2016) suggest, traditional objective functions, i.e., likelihood of a response given an input, can be improved by using an N -best list and MMI during inference. We build upon this idea; our hypothesis is that by generating B diverse sequences and re-ranking the responses, we are more likely to infer one best emotion-specific response. The B -best list is found using Beam Search of size B with length normalization. In the MMI-bidi setting, Li et al. (2016) rank all responses found during beam search based on a score calculated as: R final = argmax RC p ( RC |S ) + p ( S|R C ) +  |R C | , (2) where p ( S|R C ) is a model with the same architecture as p ( RC |S ) trained on reversed prompt-response pairs (T-S), and | RC | is the length of the candidate response, RC . We modify this objective in the following form: R final = argmax RC p ( RC |S , E 0 ) + p ( S|R C ) +  |R C |   (cid:107) ERC  E 0 (cid:107) , (3) where the last term penalizes the deviation of the emotional content, ERC , of the candidate response, RC , from the desired emotional content, E 0 . The task is to find optimal values of parameters  ,  and  , which give the best responses in terms of grammatical correctness, diversity (  ,  ) and emotional content (  ) (see 5 and 6). Cornell contains around 10K movie characters and around 220K dialogues (Danescu-Niculescu-Mizil and Lee, 2011). OpenSubtitles2018 is a collection of translated movie subtitles with 3.35G sentence fragments (Tiedemann, 2009). It has been filtered to get pairs of consecutive sequences (containing between 5 and 30 words), with respective timestamps within an interval of 5 seconds, that are part of a conversation of at least 4 turns. The filtered dataset contains 2.5M utterances. ASCII symbols are removed. To restrain the vocabulary size and correct the typos, we use a default vocabulary of fixed size 42K words from spaCy. Each word in the dataset is then compared with the vocabulary using the difflib library 2 in Python (algorithm based on the Levenshtein distance), and mapped to the most similar word in the vocabulary. If no word with more than 90% of similarity is found, the word is considered a rare word or a typo, and is mapped to the out-of-vocabulary (OOV) word. For Cornell, less than 1% of the unigrams are OOV. The VAD lexicon may not have all the words in the vocabulary. Based on the word similarity (us-ing difflib library), each word of the vocabulary is assigned a VAD value of the most similar word in the VAD lexicon. If no word with more than 90% of similarity is found, a neutral VAD value ( v = [0 . 5 , 0 . 5 , 0 . 5] ) is assigned. We compare our work to two different baselines: a vanilla seq2seq and the ECM introduced by Zhou et al. (2018). For the external memory we use our affective dictionary and train the model using the default parameters provided by authors. All the hyper-parameters have been optimized on the validation set using BLEU score (Papineni et al., 2002). For the encoder, we use two-layer bidirectional GRUs (hidden size of 256 ). The final hidden states from both directions are concatenated and fed as an input to the decoder of one-layer unidirectional GRUs (hidden size of 512 ). The embedding layer is initialized with pre-trained word vectors of size 300 (Mikolov et al., 2018), trained with subword information (on Wikipedia 2017, UMBC web-base corpus and statmt.org news dataset), and updated during training. We use ADAM optimizer (Kingma and Ba, 2014) with a learning rate of 0 . 001 for learning p ( RC |S , E 0 ) (resp. 0 . 01 for p ( S|R C ) ), which is updated by using a scheduler with a patience of 20 epochs and a decreasing rate of 0 . 5 . The gradient norm is clipped to 5 . 0 , weight decay is set to 1 e  5 , and dropout (Srivastava et al., 2014) is set to 0 . 2 . The maximum sequence length is set to 20 for Cornell and to 30 for OpenSubtitles. The models have been trained on 94% , validated on 1% , and tested on 5% of the data. 2 https://docs.python.org/3/library/difflib.html Model C distinct-1 C distinct-2 OS distinct-1 OS distinct-2 C BLEU OS BLEUN o r e -r a nk   Baseline 0.0305 0.1402 0.0175 0.1205 0.0096 0.094 ECM 0.0310 0.1412 0.0180 0.1263 0.0099 0.099 SEE 0.0272 0.1331 0.0170 0.1100 0.0110 0.093 SED 0.0303 0.1502 0.0189 0.1231 0.0128 0.103 WI 0.0316 0.1480 0.0175 0.1235 0.0129 0.100 WE 0.0310 0.1400 0.0195 0.1302 0.0098 0.095 WI + WE 0.0342 0.1530 0.0198 0.1300 0.0108 0.105 (+12.1%) (+9.1%) (+13.1%) (+7.9%) (+12.5%) (+11.7%) R e -r a nk   MMI baseline 0.0379 0.1473 0.0200 0.1403 0.0130 0.105 EMOTICONS  =0 0.0406 0.2030 0.0305 0.1431 0.0140 0.110 (+7.1%) (+37.8%) (+52.5%) (+2.0%) (+7.7%) (+4.8%) Table 2: Quantitative results: Results for all proposed models trained on Cornell (C) and OpenSubtitles (OS). To evaluate language models, we use BLEU score (computed using 1 to 4 -grams), as it has been shown to correlate well with human judgment (Agarwal and Lavie, 2008). Perplexity does not provide a fair comparison across the models: during the training of the baseline seq2seq model, we minimize the cross entropy loss (logarithm of per-plexity), whereas in other models (e.g., WI) we aim to minimize a different loss not directly related to perplexity (cross entropy extended with the affective regularizer). Having more diverse responses makes the affective re-ranking more efficient, to evaluate diversity we count the number of distinct unigrams (distinct-1) and bigrams (distinct-2), normalized by the total number of generated tokens. The performance of different models introduced in 3 are presented in Table 2. MMI bas. refers to a system that re-ranks responses based on Equation 2, where both p ( RC |S ) and p ( S|R C ) are baseline seq2seq models. EMOTICONS is a system based on Equation 3, where p ( RC |S , E 0 ) is computed using a composition of Word-Level Implicit Model (WI) and Word-Level Explicit Model (WE), and p ( S|R C ) is computed using WI (as we are not interested in explicitly using the input emotion). We optimize  and  on the validation set using BLEU score, since Li et al. (2016) have shown that adding MMI during inference improves the BLEU score. We set  = 0 and find optimal values  opt = 50 . 0 and  opt = 0 . 001 using grid search. goal of our work, but the observed improvement (after adding emotions) shows that the different systems are able to extract and use emotional patterns to improve the general language model. 5.1 Response Diversity From Table 2, we observe that for both Cornell and OpenSubtitles datasets, SED, WI, and WE models outperform the vanilla seq2seq and the ECM for at least one of the two distinct measures. SEE has the worst performance overall and does not compete with either the baseline, nor with SED. This is expected according to the results reported by Huang et al. (2018). It seems that the model is not able to capture the information carried by the additional emotion embedding token  it is treated as just one additional word among 20 others. SED makes better use of the emotion information, as it is used at each time step during decoding. In addition, it is more natural to use these features during the decoding, since the emotion embedding represents the desired emotion of the response. The combination of WI and WE performs best in terms of distinct-1 and distinct-2 measures among all models without re-ranking, yielding an improvement of up to 13 . 1% . It suggests that the word level emotion models suit the seq2seq architecture better. During training, both models are encouraged not only to match the target words, but also to promote less frequent words that are close to the target words in terms of VAD values (affective regularizer and affective sampling), fostering the model to generate more diverse responses. improvement in diversity, but the relative improvement for OpenSubtitles (MMI bas. ) is smaller than the one reported by Li et al. (2016). This could originate from the different data filtering and beam search strategy, and the fact the hyper-parameter optimization has been performed on Cornell. EMOTICONS is a combination of WI + WE (best performing model) for p ( RC |S , E 0 ) and WI for p ( S|R C ) , it is better than MMI bas. (up to 52 . 5% gain in distinct-1). It is worth noting that we observe higher scores in terms of diversity for the reversed model p ( S|R C ) compared to the normal model p ( RC |S , E 0 ) , while training on Cornell. We can explain this using the data distribution: distinct-2 is higher for the questions than for the answers ( 0 . 167 and 0 . 154 for Cornell, respectively). Table 2 shows that, in general, introducing emotional features into the process of generating responses does not reduce the BLEU score. To reduce the potential negative impact of choosing inappropriate first words in the sequence, we compute the BLEU score on the result of beam search of size 200. For example, if the first word is I, the seq2seq models tend to generate a response I don't know with high probability, due to the high number of appearances of such terms in the training set. In certain cases, like WI and SED, we observe an improvement. Such an improvement is expected, since our model takes into account additional (affective) information from the target sequence during response generation. The quantitative evaluation shows that EMOTICONS outperforms the baseline while adding the emotional features during response generation. The re-ranking phase did not take into account the affective term (  = 0 in Equation 3). Setting a different value would not necessarily improve any of the available metrics (e.g., BLEU score, diversity), as they do not explicitly take into account affective content in their definition. In this section, we describe an optimization procedure, relying on human judgment, for finding the optimal value of  . Button (Broekens and Brinkman, 2013), a reliable affective tool for assigning emotions, which, to our knowledge, has never been used for estimating the emotional content of the generated responses. In our experiment, the AffectButton lets users choose a facial expression from a continuous space (see Figure 3), that best matches the emotional state associated with the sequence, which is then mapped into the VAD space. In order to conduct the experiment, we chose a pool of 12 annotators, who annotated a total of 400 sequences. The prompts were randomly chosen from the test set of Cornell, among the 200 sequences that create the most diverse responses in terms of distinct-2. The more diverse the responses are, the more likely we are to select a response carrying a desired emotion. The responses for the prompts were generated using EMOTICONS where the target emotion was either fear, anger, joy, or surprise; the four corners of the AffectButton. was randomly chosen among 20 uniformly sampled values in [0 , 10] . In Figure 2, we present the difference between the VAD value according to the face assigned by the user, and the desired emotion for the response. The average curve presents a global minimum at  opt = 4 . 2 . The system does not perform equally well at generating different emotions according to the human judgment. On average, we observe lower values for joy compared to anger in Figure 2. This phenomenon is expected, as in the re-ranking Model Grammatical User Preference Correctness Total Majority Vote MMI bas. process ERC is estimated using the emotion classifier (Witon et al., 2018) which detects joy more accurately than anger ( 77% versus 57% ), surprise ( 62% ) and fear ( 69% ). In this section, we qualitatively evaluate the emotional content and correctness of the responses generated by EMOTICONS  =  opt compared to the ones from MMI bas. through a user study. It consists of three different experiments which measure grammatical correctness, user preference, and emotional appropriateness. For all experiments, we chose prompts from the test set of Cornell, for which the most diverse responses were created by MMI bas. in terms of distinct-2. We test EMOTICONS by generating responses according to four emotions: fear, anger, joy, and surprise (beam size of 200). In this experiment, we used 40 prompts. For each prompt, we generated 5 sentences (4 for EMOTICONS, and 1 for MMI bas. ) that were presented in a random order to 3 native English speakers. They assigned either 0 (sentence grammatically incorrect), or 1 (sentence grammatically correct) for all sentences. To measure the agreement across annotators, we calculate Fleiss'  = 0 . 4128 , which corresponds to moderate agreement. Our model does not substantially sacrifice the grammatical correctness of the responses (see Table 3). In this setting, we quantify how likely the user is going to prefer the response generated by EMOTICONS compared to the one generated by MMI bas. . We asked 18 annotators to choose their fa-(a) Bas. vorite response to the input query among eight proposed answers (top four responses coming from the MMI bas and 4 coming from EMOTICONS with the four different target emotions). Each of 45 sentences were annotated by three different annotators. Results of the experiment (Table 3) indicate that users strongly prefer EMOTICONS over MMI bas. . In this experiment, we show that our model is able to generate emotions in a controlled manner. For each of the 5 models, 22 users assign a face via the AffectButton. We generate responses for 120 different prompts. We keep the responses that were annotated with a VAD vector with the norm greater than 2 , corresponding to those expressing strong emotions. We compute the average VAD vectors for the annotated sequences for each model, with corresponding AffectButton faces (Figure 3). The majority of user-assigned faces have a high arousal value, which can be explained by the fact that users tend to click in one of the four corners of the AffectButton. The majority of the faces represent an accurate portrayal of the desired emotion. The poor performance of EMOTICONS at expressing surprise comes from the fact that (1) users often mismatch surprise with joy, leading to a neutral dominance value, and (2) surprise is one of the most difficult emotions to judge (see 6). We have presented EMOTICONS, a system that can generate responses with controlled emotions. The flexibility of the presented solution allows it to be used in any kind of neural architecture as long it fits the encoder-decoder framework. Currently, EMOTICONS does not generate different emotions equally well. Future work could include incorporating contextual information that would help EMOTICONS to better capture emotional content. We would like to thank anonymous reviewers for their insightful comments. Mubbasir Kapadia has been funded in part by NSF IIS-1703883, NSF S&AS-1723869, and DARPA SocialSim-W911NF-17-C-0098.
abstain method abstain objective method abstain abstain abstain abstain abstain method abstain method objective abstain result abstain other other other other method other other method other other other other abstain other abstain abstain abstain other abstain abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain abstain abstain method abstain abstain abstain method abstain abstain abstain method abstain abstain other other abstain abstain abstain method abstain abstain other abstain abstain abstain abstain abstain abstain method abstain other abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain abstain abstain abstain method method abstain method abstain abstain method abstain abstain abstain abstain abstain abstain abstain abstain abstain other abstain abstain method abstain abstain abstain method abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain abstain abstain method abstain abstain method abstain abstain abstain abstain method abstain abstain abstain abstain abstain result abstain abstain abstain abstain abstain abstain abstain abstain abstain result abstain abstain method abstain abstain method abstain method method method abstain method abstain abstain method abstain method abstain abstain abstain abstain abstain abstain abstain method abstain method abstain abstain abstain method abstain abstain abstain other other